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とうまくいきました。システム パス上にあるため、bash の場所を追加する必要はないようです。
ここで別の解決策を見つけました。変化する
#!/bin/bash
為に
#!/usr/bin/bash
より良い:
#!/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
それ以外の
#!/bin/bash
Homebrew を使用して BASH をインストールした場合は、
を削除
#!/bin/bash
すれば十分です。
これは奇妙なエラーです。エラーの原因を見つけることをお勧めします。
1 つのことは、pwd コマンドを確認することです。
type pwd
/usr/bin/pwd または /bin/pwd であることを確認し、スクリプトではないことを確認します。
file /usr/bin/pwd
スクリプトなら、きっと
#!echo