스크립트가 있습니다'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
"분리" 모드에서 화면을 시작합니다. 그러면 새 세션이 생성되지만 연결되지는 않습니다. 이는 시스템 시작 스크립트에 유용합니다.
그리고 "$@"
원래 호출의 나머지 매개변수를 전달합니다.