화면을 호출하는 타사 스크립트를 호출하는 스크립트 - 화면 분리를 시작하는 방법은 무엇입니까?

화면을 호출하는 타사 스크립트를 호출하는 스크립트 - 화면 분리를 시작하는 방법은 무엇입니까?

스크립트가 있습니다'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.shscreenman 1 screen

-d -m "분리" 모드에서 화면을 시작합니다. 그러면 새 세션이 생성되지만 연결되지는 않습니다. 이는 시스템 시작 스크립트에 유용합니다.

그리고 "$@"원래 호출의 나머지 매개변수를 전달합니다.

관련 정보