Bash写了一个if语句

时间:2015-11-24 05:28:58

标签: bash

我是bash的新手,我需要在我的代码中编写一个if语句但是我不确定如何编写是这样的,如果找到$someVar那么运行其他就行了。在这种情况下,$someVar是一个文件,我不想输出文本,只需运行另一行代码,在这种情况下创建文件。

代码:

rm /var/path/to/folder/$someVar

for i in `seq 3 253`

do

echo $ALLOCATION.$i >> /var/path/to/folder/$someVar

1 个答案:

答案 0 :(得分:1)

要检查是否存在/var/path/to/folder/"$someVar",您可以使用:

#!/bin/bash

if [[ -f /var/path/to/folder/$someVar ]]; then

    rm /var/path/to/folder/"$someVar"

fi

for i in `seq 3 253`; do

        echo $ALLOCATION.$i >> /var/path/to/folder/"$someVar"

done

您还可以使用简单的复合命令

#!/bin/bash

[[ -f /var/path/to/folder/$someVar ]] && rm /var/path/to/folder/"$someVar"

for i in `seq 3 253`; do

    echo $ALLOCATION.$i >> /var/path/to/folder/"$someVar"

done

注意:[[ ... ]]中,您无需引用变量来防范变量中的spaces。在所有其他情况下,你应该(根据经验)。

另外,请注意检查文件是否为可写(即您有权删除它),您可以使用[[ -w /var/path/to/folder/$someVar ]]