0

私の bash スクリプトの一部がハングアップの原因になっていることがわかりました。ここで抽出します:

#!/bin/bash
cat << EndOfFspreadFile >> ./myscript.sh 
echo Enter Source Path : 
read SRCPATH
FILECNT=`find $SRCPATH/* 2>/dev/null | wc -l`
FILECNTERR=`find $SRCPATH/* 2>&1 | grep "find:" | wc -l`
echo count : $FILECNT
echo problems : $FILECNTERR
EndOfFspreadFile
echo done

このスクリプトは、統合ブロック内のスクリプト部分を myscript.sh ファイルに追加するだけであると想定されています。しかし、ハングするだけです。ありがとう !- モハメド -

4

1 に答える 1

2

$ 変数と逆引用符が展開されます。スクリプトでそれらをエスケープする必要があります。現在、ファイルシステム全体を検索することになります。

基本的に、次のfind $SRCPATH/* 2>/dev/null | wc -lように実行されますfind /* 2>/dev/null | wc -l

書き直す方法は次のとおりです(1行の例のみ):

FILECNT=\$(find \$SRCPATH/* 2>/dev/null | wc -l)

ちなみに、実行すると簡単にわかりますbash -x <your script>

于 2013-01-31T00:40:08.600 に答える