想编写一个脚本,执行我的程序,如果可执行文件不存在,则先编译在执行:
rm -rf runinfo/log
mkdir runinfo/log
rm -rf runinfo/index1208/*
echo dupserver strating......
if [![-s ../src/build/dupserver]]; then #这个地方有问题: run[5]: [![-s: 未找到
cd ../src
gm
cd ../config
fi
../src/build/dupserver -i server.cfg
我想用那个if语句判断一下文件不存在的情况,但是失败了
请教大侠们怎么弄
还有,那个方括号什么意思?then前面的那个";"干什么用的,貌似“;"不要的话会出问题
|
中括号[]前后要有空格
|
if [![-s ../src/build/dupserver]];
[ -s ../src/build/dupserve ]
|
用 [ ! -e ../src/build/dupserver ]; 替换
|
a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
-s 是可以的.
if [ -s ../src/build/dupserver ];then