小编hap*_*set的帖子

如何执行与当前脚本位于同一目录中的脚本?

为什么shell脚本这么难开发?在 NodeJS 中,我可以简单地做:

require('./script')
Run Code Online (Sandbox Code Playgroud)

并且它总是需要script相对于当前脚本。但是如果我在 shell/bash 中尝试:

./script.sh
Run Code Online (Sandbox Code Playgroud)

它将寻找相对于cwd( pwd) 的脚本。似乎点表示cwd( pwd) 而不是我预期的当前脚本所在的目录。

line 8: ./script.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如何执行相对于当前执行脚本所在目录的脚本?

我试过了

/bin/bash script.sh
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

/bin/bash: script.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我试过了

script.sh
Run Code Online (Sandbox Code Playgroud)

得到这个错误

line 8: script.sh: command not found
Run Code Online (Sandbox Code Playgroud)

只有以下解决方案工作正常,但问题是它不可读:

$("$(dirname "$(realpath "$0")")/script.sh")
Run Code Online (Sandbox Code Playgroud)

shell-script

19
推荐指数
3
解决办法
2万
查看次数

ubuntu - 为什么对 init.d 脚本的修改被忽略

我使用的是 Ubuntu 服务器 14.04。在我进行修改/etc/init.d/gearman-job-server并输入后:

# sudo service gearman-job-server restart
Run Code Online (Sandbox Code Playgroud)

它忽略我所做的修改。但随后我输入:

# /etc/init.d/gearman-job-server restart
Run Code Online (Sandbox Code Playgroud)

一切正常。Ubuntu 14.04 中的这些脚本现在是否缓存在某处?

ubuntu services init.d

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

init.d ×1

services ×1

shell-script ×1

ubuntu ×1