我是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
答案 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 ]]