【问题标题】:Bash for loop with paired variables带有成对变量的 Bash for 循环
【发布时间】:2018-08-28 22:27:20
【问题描述】:

我有一个包含 100 多个文件的目录,我有一个列表,每个文件都有一个编号。我想像这样运行一个for循环

numPairs="21 57 93... etc"
for filename in /directory/;
do
    $filename [numPairs[1]] > newfilename
done;

有没有办法(比如在 js 中,这就是我所熟悉的)调用与 for 循环中调用的文件名对应的 numPairs 项?或者我会更好地创建另一个包含所有文件名的列表?

【问题讨论】:

  • 我不清楚你想在这行做什么:$filename [numPairs[1]] > newfilename
  • numPairs 是包含由空格分隔的数字的字符串吗?我也对你的代码有点困惑;请澄清。

标签: bash loops variables for-loop


【解决方案1】:

Bash 就像:

numbers="21 57 93"
while IFS=$'\t' read -r num file; do
    echo "num=$num file=$file"
done < <(paste <(printf "%s\n" $numbers) <(printf "%s\n" /directory/*))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 2012-04-04
    • 1970-01-01
    • 2017-11-28
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多