Bash 스크립트 Ubuntu에서 애플리케이션 호출

Bash 스크립트 Ubuntu에서 애플리케이션 호출

내 Ubuntu 컴퓨터에 특정 응용 프로그램이 설치되어 있고 이를 bash 스크립트에서 사용 /usr/local/MYPROGRAM/bin/myapp하려고 하면 명령을 찾을 수 없다는 오류가 발생 하지만 일반 터미널 창에서 호출하면 정상적으로 작동합니다. 파일이 있는데 bash 스크립트에서 호출하는 방법을 알고 싶습니다 .myfnmybashscript.shmyfnmyfn~/.bashrcmyfnmybashscript.sh

이것은 mybashscript.sh:

#!/bin/bash -i

alias brc='source ~/.bashrc'

source /usr/local/MYPROGRAM/bin/myapp
#exec bash
echo "******************pathhhhhhhh************"
echo $PATH
echo "******************pathhhhhhhh************"
/usr/local/MYPROGRAM/bin/myapp

내가 실행할 때의 출력은 다음과 같습니다 ./mybashscript.sh.

bash: /bin/realbin/myapp: No such file or directory
******************pathhhhhhhh************
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
******************pathhhhhhhh************
/usr/local/MYPROGRAM/bin/myapp: 3: /usr/local/MYPROGRAM/bin/myapp: /bin/realbin/myapp: not found

답변1

source스크립트에 함수를 로드하는 경우 :

source /usr/local/MYPROGRAM/bin/myapp

모든 하위 쉘(예: 스크립트)에서 함수를 전역적으로 사용할 수 있게 하려면 를 사용하십시오 export. 귀하의 경우 이 명령은 의 함수 정의를 따릅니다 ~/.bashrc.

export -f myfn

편집: 여기에 보고된 문제가 발생했습니다.

bash: /bin/realbin/myapp: No such file or directory

파일이 /bin/realbin/myapp존재하지 않기 때문입니다.

답변2

source해당 함수가 포함된 파일을 사용해 보셨나요 ?

내 파일에 bash 기능을 추가하는 경우 .bashrc(그 위치가 마음에 듭니다), 이 경우 전역적으로 사용할 수 있도록 source파일을 포함 해야 합니다..bashrc

알아채다: source시작 시 실행되기 때문에 필요합니다.수동함수를 편집할 때만 호출됩니다.고쳐 쓰다소스 코드).

관련 정보