shell脚本:糟糕的解释器:使用pwd时没有这样的文件或目录

我想通过一个for循环来查看目录中的文件,但是会出现这个问题。

echo: bad interpreter: No such file or directory 

码:

 #!/bin/bash count=0 dir=`pwd` echo "$dir" FILES=`ls $dir` for file in $FILES do if [ -f $file ] then count=$(($count + 1)) fi done echo $count 

最好做:

 #!/bin/bash count=0 dir="$PWD" echo "$dir" for file in "$dir"/* do if [[ -f $file ]] then ((count++)) fi done echo $count 

或者一个最简单/最短的解决方案:

 #!/bin/bash echo "$PWD" for file; do [[ -f $file ]] && ((count++)) done echo $count 

我有同样的问题。 删除#!/bin/bash为我做了诀窍。 似乎没有必要添加bash所在的地方,因为它在系统路径上。

我在这里找到了另一个解 更改

#!/bin/bash

对于

#!/usr/bin/bash

这是一个奇怪的错误得到。 我建议尝试找到错误的来源。

有一件事是检查pwd命令。

 type pwd 

确保它是/ usr / bin / pwd或/ bin / pwd,并验证它不是脚本:

 file /usr/bin/pwd 

如果它是一个脚本,我打赌它开始

 #!echo 

如果你使用Homebrew来安装BASH,

删除#!/bin/bash就足够了。

你可以使用命令找到bash所在的位置

 whereis bash 

您可以将bash路径复制到您看到错误解释器错误的路径。