当前位置 博文首页 > 一个搬砖的农民工的博客:编写sh脚本语言if语句的时候报错haha.s
今天第一次写sh脚本,遇到一个规则问题纠结了我两个小时。记录一下以防以后出错
sh脚本如下:
#!/bin/sh
#cp文件路径
path="/home/fdfs-test/files/files"
#循环遍历文件每行内容
for line in $(cat files.txt)
do
a=${line:0:6} #获取前6个字段
if [ ! -d "$path/$a" ];then #不存在文件目录则创建
mkdir -p $path/$a
fi
cp '/home/fdfs-test/files/data/'$line $path/$a #cp到指定路径
done
报错如下:
haha.sh: 第 9 行:[: 缺少 `]'
原因就是[ ! -d "$path/$a"]
右边的中括号没有和数据分隔开。
正确写法是[ ! -d "$path/$a" ]
我也是醉了,这么个问题纠结了近两个小时。说明linux语言是严格按照使用规范的。所以一定要注意使用规则啊