以编号顺序创建第一个不存在的文件

时间:2017-05-23 17:32:12

标签: linux bash

我想检查1.txt 2.txt 3.txt和4.txt是否在此文件夹

如果存在1.txt,则需要检查2.txt

如果存在2.txt,它将检查是否存在3.txt和

如果3.txt不存在,它将运行以运行命令

所以每个文件都有自己的命令

2 个答案:

答案 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包含一个空格分隔的相应命令数组。