18

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
4

11 に答える 11

25

私も同じ問題を抱えていました。削除する#!/bin/bashとうまくいきました。システム パス上にあるため、bash の場所を追加する必要はないようです。

ここで別の解決策を見つけました。変化する

#!/bin/bash

為に

#!/usr/bin/bash

于 2013-10-27T04:39:31.043 に答える
8

より良い:

#!/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
于 2013-03-31T23:10:34.957 に答える
5

同じ問題に遭遇したばかりで、エラーが最初の行にあることがわかりました。

#!bin/bash

それ以外の

#!/bin/bash
于 2019-09-02T00:29:43.580 に答える
1

Homebrew を使用して BASH をインストールした場合は、

を削除 #!/bin/bash すれば十分です。

于 2016-12-11T07:54:58.957 に答える
1

これは奇妙なエラーです。エラーの原因を見つけることをお勧めします。

1 つのことは、pwd コマンドを確認することです。

type pwd

/usr/bin/pwd または /bin/pwd であることを確認し、スクリプトではないことを確認します。

file /usr/bin/pwd

スクリプトなら、きっと

#!echo
于 2013-08-22T19:27:54.853 に答える