
スクリプトがあります「myscript.sh」、プロバイダスクリプトの呼び出し「サプライヤーscript.sh」。ベンダースクリプトは前景から画面を実行します。
画面が分離された状態でベンダースクリプトを実行したいと思います。できれば割れずにしたいです。ベンダースクリプトまたはプロバイダ_スクリーンrc。
これを行う方法はありますか?
myscript.sh:
# some other commands
...
source vendorscript.sh
Vendorscript.sh:
# some other commands
...
exec screen -c vendor_screenrc
答え1
プログラムを開始するために絶対パスを使用しない場合は、vendorscript.sh
実行する前に絶対パスを試してみてくださいscreen
。$PATH
これはまた、$PATH
内部リセット/動作がないと仮定しますvendorscript.sh
。
たとえば、ディレクトリを作成し、/opt/vendor
その中に次のシェルスクリプトを作成しましたscreen
。
#!/bin/bash
exec /usr/bin/screen -d -m "$@"
そしてmyscript.sh
:
#!/bin/bash
PATH="/opt/vendor:$PATH"
source vendorscript.sh
/opt/vendor
これが最初のものなので、バイナリの代わりに私のラッパースクリプトが使用されます$PATH
。によると:vendorscript.sh
screen
man 1 screen
-d -m
「分離」モードで画面を起動します。これにより、新しいセッションが作成されますが、接続されません。これはシステム起動スクリプトに役立ちます。
そして"$@"
元の呼び出しの残りのパラメータを渡します。