우리는:
- 사용자니코.
일부 bash 스크립트가 포함된 폴더
/home/nico/script_home
:main.sh
subscripta.sh
sqlscripta.sh
루트와 CD로 연결합니다
/home/nico/script_home/
- 마침내 우리는 달린다
./main.sh
결과는 다음과 같습니다.
subscripta.sh
- 해당 파일이나 디렉터리가 없습니다.- SQL 스크립트가 잘 실행됩니다
su - nico -c "pwd"
반품된 것을 보고 /home/nico/
변경해 보았 main.sh
으나 ./script_home/subscripta.sh
소용이 없었습니다.
su를 사용하여 스크립트를 실행할 때 이러한 파일이나 디렉터리 오류를 방지하는 올바른 구문은 무엇입니까?
#main.sh
su - nico -c "./subscripta.sh"
su - nico -c "sqlplus username/pass@some_oracle_db @script_home/sqlscripta.sql"
답변1
노력하다su - nico -c "/home/nico/script_home/subscripta.sh"
답변2
이렇게 하지 마십시오 su -
. 이렇게 하면 HOME을 사용자 ID의 홈 디렉토리로 설정하는 것을 포함하여 사용자 ID에 대한 전체 로그인이 수행됩니다.
노력하다su nico -c "./script.sh"
또한 script.sh가 실행 가능으로 표시되어 있는지 확인하십시오.