BASH脚本:集成文档创建挂起

时间:2013-01-31 00:34:30

标签: linux bash shell redirect

我发现我的一个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文件中即可。但它只是悬挂!     谢谢 ! - 穆罕默德 -

1 个答案:

答案 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>