检查目录中是否存在文件

时间:2019-06-07 21:48:07

标签: bash shell

我想检查目录中是否存在某些文件。如果是,我要跳过这些文件而不执行任何过程。如果否,那么我想执行一些步骤。

在目录/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

1 个答案:

答案 0 :(得分:2)

是的,在您的评论栏所在的位置,您可以添加以下检查:

if [ -e /setup/server/"$1" ]; then
    echo "file exists, nothing to do"
    exit
fi

有关可用的各种测试,请参见“帮助测试”。 '['与'test'同义