我想检查目录中是否存在某些文件。如果是,我要跳过这些文件而不执行任何过程。如果否,那么我想执行一些步骤。
在目录/setup/server
中说,我有以下文件:
systems-server01
systems-server02
system-server03
system-server04
如果我运行命令./add-system.sh system-server05
,我的代码应执行readline过程并添加新服务器。
但是,如果我运行命令./add-system.sh system-server04
,我的代码应回显“服务器已存在,请输入新服务器”。
这是我到目前为止所拥有的
#!/bin/bash
DOMAIN=my.home.fs.cville.com
if [ $# -lt 1]; then
echo "Please enter filename\n"
exit
fi
#I think this is where I need to do the check if files exist but I have
#problem figure out how to do it
while read line ; do
alt=(${line[@]}
hostname=${alt[0]}
ipaddress=${$alt[1]}
mac=${alt[2]}
iface=${alt[3]}
profile=${alt[4]}
copper system add --cobber --name=$hostname --profile=$profile --ip-
address=$ipaddress \ --interface=$iface --mac=$mac
--hostname=$hostname --dns-name=${hostname}.$DOMAIN
done<$1
copper sync
答案 0 :(得分:2)
是的,在您的评论栏所在的位置,您可以添加以下检查:
if [ -e /setup/server/"$1" ]; then
echo "file exists, nothing to do"
exit
fi
有关可用的各种测试,请参见“帮助测试”。 '['与'test'同义