shell脚本提示command not found
PROJECT=$(pwd)FAULS=`find$(pwd)-nameAAAA`Fauls=`ls$FAULS|grep/usb`echo"请输入要替换的文件"read...
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处如何做判断更好? 展开
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处如何做判断更好? 展开
3个回答
展开全部
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”。
2. 确认你变量大小写都是否正确,你定义的时候用的是FAULS,使用变量的时候是 $Fauls,导致 $Fauls这个变量为空,那么语句if [ $PATH == $Fauls ] 就相当于if [ $PATH == ]。
3. 在写if [ $PATH == $Fauls ]这样的语句时,请给变量打上双引号,预防变量为空时出现的语法错误“ line 13: [: too many arguments”。
展开全部
$PATH 等 这些都要所有变量都加引号,
"$PROJECT"
"$PROJECT"
追问
哥 这个不是环境变量没加导致系统命令无法使用的么。。求解如何加环境变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题可以解决, 是语法错误了, 需要调试才行, 已经发了百度私信了, 看看吧
追问
哥 这个不是环境变量没加导致系统命令无法使用的么。。求解如何加环境变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询