ant
내 쉘 스크립트에서는 또는 mv
또는 명령을 호출할 수 없지만 cp
동일한 명령이 터미널에서 실행됩니다. 아래는 내 스크립트입니다.
샘플.sh 파일
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
PATH는 파일에 설정됩니다 .bashrc
.
export PATH=$PATH:/usr/bin/
cp
, mv
는 ant
스크립트를 통하지 않고 터미널에서만 작동합니다.
답변1
귀하의 스크립트는 쉘 스크립트( /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
답변2
작은 스크립트가 있으면 간단한 작업을 수행하고 가능한 한 빨리 작업을 완료할 수 있습니다.
명령줄을 입력하고 다음 명령을 사용합니다.
which your_command
위 명령은 명령을 직접 사용하여 경로를 포함한 출력을 인쇄합니다.
답변3
bashrc에 경로가 설정된 바이너리를 실행할 때도 동일한 문제가 발생했습니다.
다음을 수행하여 문제가 해결되었습니다.
바이너리를 추가하거나 /usr/bin의 바이너리에 대한 링크를 추가합니다.
ln -s [path_to_binary] [name_of_executable]
그런 다음 사용하여 확인하십시오.
ls -l
bashrc에서 항목을 삭제할 수 있습니다.