bash 无法识别脚本

bash 无法识别脚本

我对脚本编写还很陌生,正在尝试从视频和书籍中学习。当我编写第一个脚本时,bash 将其视为命令而不是可执行文件(是的,我使用了 775)。以下是脚本和 bash 错误的示例:

#!/bin/bash
echo"TTTTTTT"
exit
turan_first: command not found

我是新手,甚至不知道问题出在哪里。请帮忙。

答案1

当你调用一个程序或脚本时,shell 会在变量中声明的目录中查找它PATH。除非你调用指定路径的程序文件 - 绝对路径或相对路径 -
当然,调用脚本或程序文件的用户必须对文件具有可执行权限

aprogram          ## Looks for the file in directories declared in PATH
/path/to/aprogram ## Looks for aprogram in /path/to
./aprogram        ## Looks in current directory for aprogram


查看echo $PATH

~/turan_first可执行文件包含

#!/bin/bash
echo "TTTTTTT"
exit
  • 命令后需要一个空格echo,否则 shell 将无法识别它
  • exit当脚本正常结束时是无用的
  • 使用以下方式调用脚本,~/turan_first或者在提示符出现时~/使用以下方式调用脚本./turan_first


一个好的做法是将所有脚本存储在一个专用目录中。~/Scripts
在这种情况下,你会习惯~/Scripts/turan_first使用自动完成来调用脚本。
下一步可能是将脚本目录添加到 PATH 环境变量中。这样你就可以在不指定任何路径的情况下调用脚本。
编辑 bashrc 文件:nano ~/.bashrc并添加行

export PATH="~/Scripts:$PATH"

相关内容