![화면을 호출하는 타사 스크립트를 호출하는 스크립트 - 화면 분리를 시작하는 방법은 무엇입니까?](https://linux55.com/image/53457/%ED%99%94%EB%A9%B4%EC%9D%84%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%8A%94%20%ED%83%80%EC%82%AC%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20-%20%ED%99%94%EB%A9%B4%20%EB%B6%84%EB%A6%AC%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
스크립트가 있습니다'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
"분리" 모드에서 화면을 시작합니다. 그러면 새 세션이 생성되지만 연결되지는 않습니다. 이는 시스템 시작 스크립트에 유용합니다.
그리고 "$@"
원래 호출의 나머지 매개변수를 전달합니다.