Linuxには次のシェルスクリプトがあります。
#!/bin/sh
echo -n "Please enter directory pattern: "
read dirs
find $dirs > /tmp/justbay.txt
allDirs=$(find $dirs ! -readable -prune)
echo $allDirs
lines=$($allDirs | wc -l)
echo $lines
if [ $lines -eq 0 ]; then
echo "Directory not found"
exit 1
fi
echo $alldirs
私は次のことができることを知っています。>/dev/null 2>&1
ただし、この質問はエラーメッセージとは関係ありません。なぜなら、ディレクトリが存在するかどうかにかかわらず、行数が常にゼロであるように見えるからです。
ベストアンサー1
あなたはそれを行うことができないので、$allDirs
おそらく次のことをしたいと思います。
lines=$(echo "$allDirs" | wc -l)
ただし、このバージョンでは$allDirs
1行に拡張されるため、常に1が得られます$lines
。
最も簡単な解決策は、find
出力を次に直接パイプすることですwc
。
lines=$(find "$dirs" ! -readable -prune | wc -l)