得到错误":找不到命令"当试图运行shell脚本时

时间:2014-08-11 21:17:09

标签: bash shell unix

我有一个我正在尝试运行的脚本,但只要我尝试运行它,我就会收到错误“:找不到命令”。以下是我试图解决的问题:

  1. 确保hashbang是正确的“#!/ bin / bash”
  2. 在文件
  3. 上运行dos2unix
  4. 以scriptname.sh,。/ scriptname.sh和/ bin / bash scriptname.sh
  5. 运行脚本
  6. chmod 755 scriptname.sh
  7. 我仍然无法运行脚本。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:9)

这是由回车引起的。这是[{3}}:

的摘录
  1. 检查您的脚本或数据是否具有DOS样式的行尾字符

    • 使用cat -v yourfileecho "$yourvariable" | cat -v

      DOS回车将在每行后显示为^M

      如果找到它们,请使用dos2unix(a.k.a。fromdos)或tr -d '\r'

    • 删除它们
  2. 确保检查所有数据,而不仅仅是脚本本身。

答案 1 :(得分:1)

您可以使用这些删除不必要的字符:

tr -cd '[:alnum:][:blank:][:punct:]\n' < script.sh > new_script.sh

或者

tr -cd '[:graph:][:blank:]\n' < script.sh > new_script.sh

然后尝试new_script.sh