【发布时间】:2026-01-02 07:05:02
【问题描述】:
我刚刚了解到我可以使用chmod 使myscript.sh 可执行并以$ ./myscript.sh 运行它但是我怎样才能将自定义命令附加到它,例如$ connectme [options]?
【问题讨论】:
-
顺便说一句——我投票将其作为“如何运行 shell”类型的问题推送给超级用户,但如果 Pablo 更正确,那就是一个错误。
我刚刚了解到我可以使用chmod 使myscript.sh 可执行并以$ ./myscript.sh 运行它但是我怎样才能将自定义命令附加到它,例如$ connectme [options]?
【问题讨论】:
你需要做两件事:
.”放入您的PATH 是一个坏主意(tm),因此请将其复制到$HOME/bin,然后将 that 放入您的路径中。完全不同的方法。大多数 shell 支持别名。您可以定义一个来运行您的脚本。
注意:环境变量PATH告诉shell在哪里寻找程序运行(除非你指定一个完全限定的路径,如/home/jdoe/scripts/myscript.sh或./myscript.sh),它由一个“:”要检查的目录的分隔列表。您可以通过以下方式检查您的:
$ printenv PATH
结果对我来说
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/X11R6/bin
这是二进制文件的常用目录。您可以添加一个新的路径元素(在 /bin/sh 和衍生产品中):
$ export PATH=$PATH:$HOME/bin
在csh 及其衍生产品中使用
$ setenv PATH $PATH:$HOME/bin
其中任何一个都将导致 shell 也搜索 ~/bin 以查找要运行的东西。然后将您的脚本移动到该目录中(如果您愿意,可以提供新名称)。检查您是否对脚本执行权限,然后像输入任何其他命令一样输入其名称。
实际上,使用“.sh”扩展名来表示 shell 脚本仅供人类使用。 Unix 并不关心你如何命名你的脚本:它是操作系统用来查找解释器的脚本第一行上的所谓“shebang”(“#!”)。
【讨论】:
您需要了解 BASH PROGRAMMING 中的参数。 Here 是一个很好的教程。检查第 4 节。
基本上,您需要使用特殊变量 $1、$2、$3 来分别引用第一个、第二个和第三个命令行参数。
例子:
$ ./mycript.sh A-Rod
myscript.sh 是:
#!/bin/bash
echo "Hello $1"
将打印:
Hello A-Rod
【讨论】: