より大きいbashスクリプトでは、perlコマンドで行を使ってテキストファイルのタイムスタンプを現在の日付と時刻に置き換えます。その出力は、Perlコマンドはコマンドラインでは動作しますが、bashスクリプト内では動作しません
perlcmd="perl -i -pe 's/2005-03-31T19:13:30/$(date +"%Y-%m-%dT%H:%M:%S")/' ./file.txt"
echo $perlcmd
$perlcmd
echoコマンドは、perlのコマンドが大丈夫であることを私に示しています:
perl -i -pe 's/2005-03-31T19:13:30/2017-12-21T11:33:44/' ./file.txt
タイムスタンプは、しかし、置換されていない私は、次の行を使用します。エコーされた行をコマンド行に貼り付けると、正しく実行され、タイムスタンプが置き換えられます。それを動作させるために、bashスクリプトのコードを変更する必要がありますか?
変数にhttp://mywiki.wooledge.org/BashFAQ/050をあなたのコマンドを入れて(そして、あなたはとにかくやる場合はいけない、[引用それを適切](https://で10067266/when-to-wrap-quotes-around-a-shell-variable))。 – tripleee