有没有办法为 bash 文件创建命令行包装器?

有没有办法为 bash 文件创建命令行包装器?

标题说明了一切。我想在命令行中输入“run”,它会执行/pathtoscript/script.sh。
谢谢!

答案1

创建一个名为的文件run,内容如下:

#!/bin/sh
exec /pathtoscript/script.sh "$@"

将文件放在您的路径中并设置可执行位。

“你的道路”是什么?

在命令行中输入:

echo $PATH

您将看到一个以冒号分隔的目录列表。这些是 shell 在查找要运行的命令时搜索的目录。它们统称为路径。您需要将新文件放在run这些目录中的任何一个目录中。

交互式工作的替代方法

如果你只是想run在交互工作时使用,那么可以创建一个别名:

alias run=/pathtoscript/script.sh

如果您希望永久保存此别名,请将该行放在.bashrc您的主目录中。

答案2

在 *nix shell 中,实现此操作的方法是添加一个可执行文件(或可执行文件的符号链接)到以下其中一个目录列出变量PATH. 从假设的会话来看:

$ which foo
which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/bin)
$ foo
bash: foo: command not found
$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/bin
$ sudo ln -s /path/to/my/script /usr/local/bin/foo
$ foo
[whatever your script prints]

相关内容