以下を含むbashスクリプトがあるとしましょう。
#!/bin/sh
gedit
rm *.temp
を使用して実行するとsh ./test.sh
ポップアップgedit
が表示されますが、そのrm
部分は閉じるまで実行されませんgedit
。
bashの実行をブロックしないgedit
ように、スクリプトを閉じずに実行を続けたいと思います。gedit
私が提示した例は単なる例です(rm
実際の状況では最初の例は機能しません)。
ベストアンサー1
あなたが探している用語は「バックグラウンド」タスクと呼ばれます。シェルまたはスクリプトでコマンドを実行するときは、最後にフラグを追加してバックグラウンドで送信し、新しいコマンドまたはスクリプトの残りの部分を引き続き実行できます。ほとんどのシェル(含む)ではsh
これが&
文字です。
#!/bin/sh
gedit &
rm ./*.temp
gedit
これにより、シェルは終了を待たずにrm
同時にgedit
実行されます。
「ブロック」という用語は通常、入出力ストリーム(通常はファイルまたはデバイス)に関連付けられています。これは、あなたが使用するのと同じ意味を持つコンパイルされた言語でも使用されますが、bashや同様のシェルスクリプトでは、用語(および機能!)はかなり異なります。