;
で複数のコマンドを区切ることができます 、したがってそれらは順番に実行されます。例:
really_long_script.sh ; echo Finished
スクリプトがリターン コード 0 で終了した場合 (通常は正しく実行されたことを意味します) にのみ次のプログラムを実行する場合は、次のようにします。
really_long_script.sh && echo OK
反対の場合 (つまり、現在のコマンドが失敗した場合にのみ続行する場合):
really_long_script.sh || echo FAILED
スクリプトをバックグラウンドで実行できます (ただし、スクリプトの出力 (stdout
そして stderr
) どこかにリダイレクトしない限り、端末に移動し続けます)、そして wait
really_long_script.sh &
dosomethingelse
wait; echo Finished
既にスクリプトを実行している場合は、Ctrl-Z
で一時停止できます 、そして次のようなものを実行します:
fg ; echo Finished
どこで fg
中断されたプロセスをフォアグラウンドに移動します (bg
&
で開始されたように、バックグラウンドで実行されます )
bash のジョブ コントロールを使用することもできます。始めたら
$ really_long_script.sh
次に ctrl+z を押して一時停止します:
^Z
[1]+ Stopped really_long_script.sh
$ bg
バックグラウンドでジョブを再起動します (really_long_script.sh &
で開始したかのように) )。次に、このバックグラウンド ジョブを待つことができます
$ wait N && echo "Successfully completed"
ここで、N はジョブ ID (他のバックグラウンド ジョブを実行していない場合はおそらく 1) で、[1]
としても表示されます
プロセスが現在の tty で実行されない場合は、これを試してください:
watch -g ps -opid -p <pid>; mycommand
LANG=C は多くの /etc/init.d/* スクリプトにあります。 LANG=C の機能と、LANG=C を設定する必要がある理由。
Windows での Linux の ~ (チルダ) に相当するものは何ですか?