linux shell编程问题,程序循环体不执行

echo "enter file name"
read a
echo "enter directory name"
read b
if [ -f $a ]
then
if [ -d $b ]
then cp $a $a/$b
echo "file copies"
else echo "directory not exit"
fi
else echo "file not exit"
fi
执行结果是file not exit。输入什么都这么显示
输入错误的文件名,显示如下:
[root@localhost ~]# sh test2
enter file name
s
enter directory name
d
file not exit
输入正确的文件名,显示如下
[root@localhost ~]# sh test2
enter file name
wenj
enter directory name
dir1
file not exit

第1个回答  2013-12-03
首先,你这里没有循环,只是条件判断的问题,

第二你拷贝语句写错了。a是文件啊,b是文件夹啊,应该是cp $a $b/$a要不然怎么能被执行呢,

你的脚本我已经实际实验过了,如果你输入对的文件名,是不会总提示file not exit的。

最后,写这脚本的人英语太差了。exit是退出的意思,不存在应该是exist
第2个回答  2013-12-03
echo "enter file name"
read a
echo "enter directory name"
read b
if [ -f $a ]
then
if [ -d $b ]
# +++

#then cp $a $a/$b

then cp $a $b
# ---

echo "file copies"
else echo "directory not exit"
fi
else echo "file not exit"
fi

# 只要去掉$a/就好了。
相似回答