问题描述:
在终端运行下面内容的bash文件:
#!/bin/bash
Number=1;
for name in `ls -R ~/桌面`
do
if [${name:0-1}==":"];
then
cd ${name%:}
fi
if [${name:0-5}==".jpeg"];
then
mv $name $Number.jpeg
let Number=$Number+1
fi
done
终端提示出现了“未找到命令”的错误:
原因分析:
出现错误的地方正好是两个if语句所在的那行,说明if的表达有问题。在查阅相关资料后发现在使用if语句时,要注意:
- if语句的[]与[]里的语句之间要有空格隔开
- if语句中比较符比如==的两边必须有空格与两个比较对象隔开
解决方案:
对两个if语句进行修改:
if [${name:0-1}==":"];
改成if [ ${name:0-1} == ":" ];
(多加4个空格)if [${name:0-5}==".jpeg"];
改成if [ ${name:0-5} == ".jpeg" ];
(多加4个空格)
修改后的代码如下:
#!/bin/bash
Number=1;
for name in `ls -R ~/桌面`
do
if [ ${name:0-1} == ":" ];
then
cd ${name%:}
fi
if [ ${name:0-5} == ".jpeg" ];
then
mv $name $Number.jpeg
let Number=$Number+1
fi
done
运行后就没有报错了