su - 사용자 이름 -c "./script.sh" -> 해당 파일이나 디렉터리가 없습니다.

su - 사용자 이름 -c "./script.sh" -> 해당 파일이나 디렉터리가 없습니다.

우리는:

  1. 사용자니코.
  2. 일부 bash 스크립트가 포함된 폴더 /home/nico/script_home:

    1. main.sh
    2. subscripta.sh
    3. sqlscripta.sh
  3. 루트와 CD로 연결합니다/home/nico/script_home/

  4. 마침내 우리는 달린다./main.sh

결과는 다음과 같습니다.

  1. subscripta.sh- 해당 파일이나 디렉터리가 없습니다.
  2. 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가 실행 가능으로 표시되어 있는지 확인하십시오.

관련 정보