【发布时间】:2011-07-13 20:09:27
【问题描述】:
嘿,我开始编写 bash shell 脚本,我正在尝试为一个分配创建一个脚本,当您输入两个目录时,它将检查它们是否存在并根据错误消息显示,如果两个目录都存在,它将列出当前目录之间的差异。
$ cd dir-1
$ myshellscript . dir-2 (comparing . aka dir-1 against dir-2)
输出:
Files that are in . but not in dir-2
-rw------- 1 ddddd users 1 2011-03-1 01:26 123123123
Files that are in dir-2 but not in .
-rw------- 1 ddddd users 1 2011-03-1 01:26 zzzzzzzzzzzz
到目前为止,我似乎没有检测到目录是否存在或列出差异:
dir-1=$1
dir-2=$2
if [ $# > 2 ]
then
echo "Usage: compdir dir-name1 dir-name 2"
exit 1
elif [ $# < 2 ]
then
echo "Usage: comdir dir-name1 dir-name 2"
elif [ ! -d "$@" ]
then
echo "/$@ is not a valid existing directory"
else
exit 0
fi
echo $dir-1
echo $dir-2
我必须使用的命令列表,否则我会使用 comm -32 <(ls -la dir-1) <(ls -la dir-2)
http://dl.dropbox.com/u/20930447/index.html
【问题讨论】:
-
是的,有很多更好的解决方案,但是哦,好吧 =\