내 .sh 파일에서 ant 또는 mv 또는 cp 명령을 호출 할 수 없지만 동일한 명령이 터미널에서 실행됩니다. 아래는 내 스크립트입니다.
sample.sh 파일
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
.bashrc 파일에 추가 된 경로.
export PATH=$PATH:/usr/bin/
cp, mv, ant는 scirpt를 통하지 않고 터미널에서만 작동합니다.
답변
스크립트가 쉘 스크립트 ( /bin/sh
)이므로 입력 한 PATH
항목 .bashrc
은 bash
( /bin/bash
) 대화식 쉘에 대한 내용으로 읽히지 않습니다 .
특정 사용자 PATH
가 /bin/sh
스크립트를 실행 하여 항목을 사용할 수 있게하려면 해당 사용자 홈 디렉토리 PATH
의 .profile
파일에 항목을 추가하십시오 .
또한 스크립트 내에서 각 명령에 대한 전체 경로를 추가 할 수 있습니다.
/bin/cp filename.so filename_org.so
또는 스크립트 시작 부분에 PATH
필요한 모든 것을 포함 하여 변수를 설정하십시오 $PATHS
.
PATH=$PATH:/bin:/usr/bin:xxx
export PATH
답변
bashrc에 경로가 설정된 바이너리를 실행하는 동안 동일한 문제가 발생했습니다.
다음을 수행하여 문제를 해결하십시오.
바이너리를 추가하거나 / usr / bin에 바이너리에 대한 링크를 추가하십시오.
ln -s [path_to_binary] [name_of_executable]
그런 다음 사용하여 확인
ls -l
bashrc 항목을 제거 할 수 있습니다.
답변
작은 스크립트를 가지고 작업을 최대한 마치면 간단한 일을 할 수 있습니다
명령 아래 명령 줄 사용으로 이동
which your_command
위의 명령은 해당 명령을 직접 사용하는 경로를 포함하여 출력을 인쇄합니다.