您能告诉我linux中条件的含义吗?我必须把它秘密化为bash
我想在批处理脚本中在条件内添加多个命令。 例 如果文件存在 (复制somefile,movesomefile,重命名somefile,回显某些内容) 别的事
由于某种原因,如果有条件,我无法在其中添加多个命令
感谢您的帮助
以不同的方式尝试了不同的命令,但没有奏效
这只是示例代码,可能会让您了解我要达到的目标
如果存在C:\ Users \ admin \ Desktop \ TEST \ dc.txt(回显“文件存在”超时/ t 10复制C:\ Users \ admin \ Desktop \ TEST \ dc.txt C:\ Users \ admin \ Desktop),否则(echo“ hello”复制C:\ Users \ admin \ Desktop \ TEST \ test.txt C:\ Users \ admin \ Desktop)
答案 0 :(得分:1)
if
语句以fi
结尾。您可以分别将else
和elif []; then
用于else和else-if。确保每个命令都在新行上,或者用分号分隔。
[
也有一个手册页,并说明了可以与if语句一起使用的许多选项。
#! /bin/bash
# usage $0 <filename>
file=$1 # First given argument, in your case "C:\Users\admin\Desktop\TEST\dc.txt"
RET=0
# -f = file exists
if [ -f "$file" ]; then
# Copy also renames the file
cp "$file" 'C:\Users\admin\Desktop\some_other_filename.txt'
else
echo "File does not exist"
RET=1
fi
exit ${RET}
您可以使用if [[ -f $file ]]; then
省略双引号bu,但是我不使用Windows,\
可能会引起问题,因为它用于转义字符(例如,换行符为\n
)。
此外,if语句不能有空主体。
答案 1 :(得分:-1)
这里是:
if exist C:\Users\admin\Desktop\TEST\dc.txt (
echo "file exist"
timeout /t 10
copy C:\Users\admin\Desktop\TEST\dc.txt C:\Users\admin\Desktop
) else (
echo "hello"
copy C:\Users\admin\Desktop\TEST\test.txt C:\Users\admin\Desktop
)
您的问题是代码的括号不正确。