su - 用户名 -c "./script.sh" -> 没有这样的文件或目录

su - 用户名 -c "./script.sh" -> 没有这样的文件或目录

我们有:

  1. 用户 nico.
  2. 包含一些 bash 脚本的文件夹/home/nico/script_home

    1. main.sh
    2. subscripta.sh
    3. sqlscripta.sh
  3. 我们以 root 和 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 - 运行脚本时避免出现 no such file or directory 错误的正确语法是什么?

#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 -- 这会对用户 ID 进行完全登录,包括将 HOME 设置为任何用户 ID 的主目录。

尝试su nico -c "./script.sh"

另外,请确保 script.sh 被标记为可执行。

相关内容