Bash编写if语句
我是bash新手,需要在代码中编写if语句,但我不确定如何编写,因此如果找到Bash编写if语句,bash,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 要检查是否存在/var/path/To
$someVar
,请运行此命令,否则请执行此操作。在本例中,$someVar
是一个文件,我不想输出文本,只是在本例中运行另一行代码来创建文件
代码:
rm /var/path/to/folder/$someVar
for i in `seq 3 253`
do
echo $ALLOCATION.$i >> /var/path/to/folder/$someVar
要检查是否存在
/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
也可以使用简单的复合命令:
注意:在[…]
中,您不必引用变量以防止变量中出现空格。在所有其他情况下,你应该(作为经验法则)
另外,请注意,要检查文件是否可写(即您有权删除它),您可以使用[-w/var/path/to/folder/$someVar]]
如果[-n$someVar]],则简短回答;然后。。做你的事。。fi
任何bash引用都将解释可用条件表达式(或测试)的类型。@Joe已更新question@DavidC.Rankin谢谢,我还更新了我的问题还有一个问题--当你说存在时,你是说与变量内容同名的文件存在吗,或者您的意思是$someVar
已设置且不为空?要测试名为$someVar
的文件是否存在,请在[[-f$someVar]]中使用if;然后。。。做你的事..fi
。您也可以使用复合命令检查并有条件地删除文件[[-f$someVar]]&&rm/var/path/to/folder/$someVar
@DavidC.Rankin后者您是否可以将其作为答案,以便我确保格式正确?
#!/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