我想通过一个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路径复制到您看到错误解释器错误的路径。