次のように定義されたユーザー定義の環境変数が指すファイルがあります$file
。
file='filename.groovy'
私がする時:
echo $file
次のように問題なく正しく印刷されます。
filename.groovy
そして私がするとき:
cat $file
ファイル「filename.groovy」の内容を正常に印刷しています
ここまですべて完璧
しかし、問題は次のとおりです。
sed
コマンドの出力を次のようにリダイレクトしようとすると:
sed 's/def version = ".*"/def version = "'$version'"/' $file > $file
その後
猫$ファイル
その印刷は何もありません。つまり、元のファイルが切り捨てられました。
なぜそうなのですか?
sed
変数 $file を使用して、コマンドの出力をファイル 'filename.groovy'にリダイレクトする理由と解決策を提案してください。
よろしくお願いします。. .