2017-06-12 6 views
-3

前のコマンドが終了したときにbash命令を実行します。現在の実行が終了したときにのみ実行可能ファイルをループで実行するためのBashコード

for i in $(seq 0 3) 
do 
...elaboration 
eval $command 
done 

コマンドは、命令(./binary_fileフラグ)を含む変数です。 ループコマンドが変更されました。 eval $ command(バイナリファイルの実行)が実行を終了すると、ループの次の繰り返しに行きます。つまり、私はeval $コマンドを "ブロックする"でしょう。どのようにこの動作を達成できますか?これはデフォルトの動作ですか?

eval $コマンドで実行されるバイナリファイルは、C++のソースコードから生成されます(これはまったく分かりませんが、わかりません)。 (私はUnixにいる) ありがとうございます!

これについて(初期ドル記号は、bashプロンプトをある)何
+0

あなたは何が起こるかを見るためにそれを試してみましたか? –

+0

いいえ、この時点で私はssh(リモートから)にアクセスするサーバー上のプロジェクトをコピーしています。プロジェクトがコピーされると、.shはサーバー上で実行されます。 – Umbert

+1

ここで質問する前に試してみてください。あなたは 'sleep 10'や何かをあなたのコマンドに置き換えて、時間のかかるものを得ることができます。そうすれば、その動作を見ることができます。 –

答えて

0

、そのブロック(デフォルト用&あなたはそれなしでバックグラウンド実行、バットを許可するブロックを持ちます)。しかし、コードが必要ない場合は、評価が必要です。セキュリティ上の問題があるにevalを使用していない別の可能性としては、次のとおりです。

"${name_exe}" >"${file1_name}.txt" 2>"${file2_name}.txt" 

(問題の上記のコマンドは

"${name_exe} > ${file1_name}.txt 2> ${file2_name}.txt" 

です)

0

:デフォルトでは

$ command="who am I" 
$ for i in {1..10} ; do ${command} ; done 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
mauro ttys000 Jun 10 14:08 
+0

はい、あなたは正しいです。評価は必要ありません。質問を更新すると、新しい問題が発生します – Umbert

+0

前のコメントの修正。評価が必要です。私の答えを見て – Umbert

関連する問題