我们有:
- 用户 nico.
包含一些 bash 脚本的文件夹
/home/nico/script_home
:main.sh
subscripta.sh
sqlscripta.sh
我们以 root 和 cd 身份连接
/home/nico/script_home/
- 最后我们运行
./main.sh
我们得到结果:
subscripta.sh
- 没有这样的文件或目录- 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 被标记为可执行。