ファイルに「content」行がすでに含まれているかどうかを確認するには?

ファイルに「content」行がすでに含まれているかどうかを確認するには?

コンテンツXを含む行でファイルが準備されているかどうか、それ以外の場合は行が追加されたかどうかを知る必要があります。私が試したコードは次のとおりです。

if ! $(grep 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' ~/.bashrc)
then
    echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >> ~/.bashrc
fi

ベストアンサー1

#!/bin/bash

LINE='eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)'

if ! grep -qF "$LINE" file.txt ; then echo "$LINE" >> file.txt ; fi

$(...) は、エラーレベルの値ではなくコマンドの結果を返します。正しい戻りコードを取得するために、コマンドを置き換えることなく使用できます。

おすすめ記事