ディレクトリを変更し、バックグラウンドでプロセスを実行してから元のディレクトリに戻るコマンドを作成したいと思います。プロセスを特定のディレクトリから開始することが重要です(相対パスには実行中のディレクトリを使用します)。
これを実行しようとしましたが、次のエラーが発生しました。
cd ~/work; myapp &> /dev/null &; cd -
-bash: syntax error near unexpected token `;'
次のコマンドのいずれかを実行できます。
# Without the "&" that cause the process to run in the background
cd ~/work; myapp &> /dev/null; cd -
# Without the " cd -" which returns my to the original directory
cd ~/work; myapp &> /dev/null &
これの目的は、このコマンドをエイリアスに追加できるようにすることです。
同じサブシェルでcd
コマンドを実行するとmyapp
、cd
戻る必要はありません。
( cd ~/work; myapp &>/dev/null ) &
括弧(...)
、、はサブシェルを作成します。cd
サブシェルでディレクトリ()を自由に変更したり、環境を変更したりできますが、親シェルには影響しません。したがって、cd
後で戻る必要はありません。
ディレクトリから始めましょう/tmp/1
:
$ pwd
/tmp/1
それでは、cd
バックグラウンドシェルでサンプルコマンドを実行してから、ディレクトリをもう一度確認してみましょう。
$ ( cd work; date &>/dev/null ) &
[1] 11942
$ pwd
/tmp/1
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加