私はこれを試しました:
echo " mv /server/today/logfile1 /nfs/logs/ && gzip /nfs/logs/logfile1" | sed 's|logfile1|logfile2|g'
次のように印刷されます。
mv /server/today/logfile2 /nfs/logs/ && gzip /nfs/logs/logfile2
これはバッシュコマンドです。ただ印刷するのではなく、どのように実行することができますか?
ベストアンサー1
コマンドをシェルにパイプすることで実行できます。
echo "mv ..." | bash
あるいは、それをシェルに引数として渡すこともできます。
bash -c "$(echo "mv ...")"
または、組み込みのbashを使用することもできますeval
。
eval "$(echo "mv ...")"
しかし、これらのコード生成コマンドはすべて私に少し脆弱に見えます(一部のパスにスペースが含まれるとすぐに失敗します)。