shell脚本提示command not found

PROJECT=$(pwd)FAULS=`find $(pwd) -name AAAA`Fauls=`ls $FAULS | grep /usb`
echo "请输入要替换的文件"read -e FileNameRESULT=`find $PROJECT -name $FileName`PATH=`ls $RESULT | grep $FileName`rm -rf $PROJECT/replaceecho "$RESULT" >> $PROJECT/replaceNumber=`cat $PROJECT/replace | wc -l`
if [ $PATH == $Fauls ]then echo " $PROJECT 下未找到 $FileName" exit 1else echo "共找到 $Number 处,具体路径如下" cat $PROJECT/replacefi
echo "输入要替换搜索结果中的第几个文件(输入数字)"read -e choiceCHOICE=`awk -v num=$choice 'NR==num,NR==num{print}' $PROJECT/replace`cp $PROJECT/$FileName $CHOICEecho "$CHOICE 已替换"~~~"Replace_file" 26L, 675C written

[root@packshop cavan]# ./Replace_file 请输入要替换的文件file./Replace_file: line 9: rm: command not found./Replace_file: line 11: cat: command not found./Replace_file: line 11: wc: command not found./Replace_file: line 13: [: too many arguments共找到 处,具体路径如下./Replace_file: line 19: cat: command not found输入要替换搜索结果中的第几个文件(输入数字)

如何处理,还有line13处如何做判断更好?

1. 关于command not found,这个是因为`PATH=`ls $RESULT | grep $FileName` 这里的PATH,会将系统环境变量给覆盖了。请把PATH,修改成Path或者mypath之类的单词。

2. 确认你变量大小写都是否正确,你定义的时候用的是FAULS,使用变量的时候是 $Fauls,导致 $Fauls这个变量为空,那么语句if [ $PATH == $Fauls ] 就相当于if [ $PATH == ]。

3. 在写if [ $PATH == $Fauls ]这样的语句时,请给变量打上双引号,预防变量为空时出现的语法错误“ line 13: [: too many arguments”。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-19
$PATH 等 这些都要所有变量都加引号,
"$PROJECT"追问

哥 这个不是环境变量没加导致系统命令无法使用的么。。求解如何加环境变量

第2个回答  2014-01-18
这个问题可以解决, 是语法错误了, 需要调试才行, 已经发了百度私信了, 看看吧追问

哥 这个不是环境变量没加导致系统命令无法使用的么。。求解如何加环境变量

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网