我想检查1.txt 2.txt 3.txt和4.txt是否在此文件夹
如果存在1.txt,则需要检查2.txt
如果存在2.txt,它将检查是否存在3.txt和
如果3.txt不存在,它将运行以运行命令
所以每个文件都有自己的命令
答案 0 :(得分:0)
您可以使用带break
的for循环在需要时离开循环:
#!/bin/bash
for i in {1..4} ; do
if [[ ! -f $i.txt ]] ; then
touch "$i".txt
break
fi
done
请注意,如果名为1.txt
的目录存在等,它可能会中断
答案 1 :(得分:0)
files=( "1.txt" "2.txt" "3.txt" "4.txt" )
comms=( "echo 10" "echo 20" "date" "touch me" )
for ((i=0; i<${#files[@]}; i++)); do
[[ ! -f ${files[$i]} ]] && ${comms[$i]} && break
done
$files
包含一个以空格分隔的文件数组,$comms
包含一个空格分隔的相应命令数组。