【问题标题】:How to find several files by iterating through a variable in bash如何通过迭代bash中的变量来查找多个文件
【发布时间】:2019-11-22 08:46:54
【问题描述】:

我想找到Stress_x_vs_Ecutoff_convergence.txt、Stress_y_vs_Ecutoff_convergence.txt 和Stress_z_vs_Ecutoff_convergence.txt 文件,如果存在则删除它们。

我尝试创建一个字符串数组来迭代它们。但是编译器告诉我:

i: command not found

部分代码在这里:

components=('x' 'y' 'z')
for i in "${components[@]}"
    do
        if [ -f "Stress_$(i)_vs_Ecutoff_convergence.txt" ]; then rm    "Stress_$i_vs_Ecutoff_convergence.txt"; fi
    touch "Stress_$(i)_vs_Ecutoff_convergence.txt"
    done

我需要变量 i 来做其他事情,所以如果您尝试提供与我的方法没有太大不同的解决方案,我将不胜感激。 我知道这可能很简单,但我对 bash 还不是很熟悉

【问题讨论】:

  • 您的意思是$(i) 尝试将值作为命令执行并用输出替换自身,还是${i} 只是插入值?
  • 解决了。谢谢你的解释!

标签: string bash variables find


【解决方案1】:

$(i) 更改为${i}

$(i) 表示执行名为“i”的命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2020-10-22
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多