![创建一个类似 more、adb 的文件](https://linux22.com/image/992903/%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%B1%BB%E4%BC%BC%20more%E3%80%81adb%20%E7%9A%84%E6%96%87%E4%BB%B6.png)
在 Ubuntu 中,如果我输入which more
,它将显示more
命令的路径为/bin/more
,表明它是一个文件。但我没有看到它的任何扩展名,也没有关联的类型,可能是因为它们是简单的可执行文件。我如何创建这样一个可以作为简单echo
字符串的文件?
我不想创建文件,因为如果我想将文件作为命令与另一个命令一起传递,我也.sh
必须输入 。TIA.sh
答案1
类似 Un*x 的操作系统对文件扩展名不感兴趣。要使 shell 脚本可执行,请输入
#!/bin/sh
作为脚本的第一行来定义解释器(或者#!/bin/bash
如果您需要 bash 扩展,或者您选择的任何 shell)。并将模式更改为可执行:
chmod a+x <filename>
如果可执行文件不在您的 PATH 环境目录中,则必须提供其完整路径或相对路径。
编辑:
如果您的主目录中有一个 ./bin 子目录,则登录时通常会将其包含在您的 $PATH 中(请参阅 .profile 脚本)。因此,您可以创建 $HOME/bin 并将可执行文件放在那里
答案2
您不需要.sh
对 shell 脚本使用扩展名。它们应该以 shebang 开头,以表明它是 shell 脚本。#!/bin/bash
是 bash 脚本的 shebang,或者如果您希望操作系统根据默认的 shell 用途来决定使用哪个 shell #!/bin/sh
。
为了能够将脚本作为命令执行,只需输入名称,它应该具有;shebang、可执行权限,并且应该位于 PATH 环境变量中包含的目录中。
您可以使用以下方式查看所有这些位置:
echo $PATH
输出应为:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
一旦满足这三个条件,只需输入名称即可执行脚本。