我发现我的一个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文件中即可。但它只是悬挂! 谢谢 ! - 穆罕默德 -
答案 0 :(得分:2)
您的$变量和后引号将会扩展。你需要在脚本中逃避它们。 现在你最终搜索整个文件系统。
基本上,find $SRCPATH/* 2>/dev/null | wc -l
被执行为find /* 2>/dev/null | wc -l
以下是如何重写它(只有一行示例):
FILECNT=\$(find \$SRCPATH/* 2>/dev/null | wc -l)
顺便说一句,很容易找出你是否运行bash -x <your script>
。