python - 在 bash 的 for 循环中读取字符串数组

标签 python linux bash

我在查看这个答案后声明了这个值数组。

Loop through an array of strings in Bash?

declare -a consti=("Baharagora" "Barhait" "Barkagaon" "Bishunpur" "Borio" "Chaibasa" "Chakradharpur" "Dumka" "Dumri" "Gandey" "Ghatsila" "Giridih" "Gomia" "Gumla" "Hatia" "Ichagarh" "Jama" "Jarmundi" "Jugsalai" "Kharasawan" "Khunti" "Littipara" "Lohardaga" "Madhupur" "Maheshpur" "Majhgaon" "Manoharpur" "Nala" "Nirsa" "Pakur" "Potka" "Shikaripara" "Silli" "Sindri" "Sisai" "Tundi")

这是我编写的完整代码

#!/bin/bash

declare -a consti=("Baharagora" "Barhait" "Barkagaon" "Bishunpur" "Borio" "Chaibasa" "Chakradharpur" "Dumka" "Dumri" "Gandey" "Ghatsila" "Giridih" "Gomia" "Gumla" "Hatia" "Ichagarh" "Jama" "Jarmundi" "Jugsalai" "Kharasawan" "Khunti" "Littipara" "Lohardaga" "Madhupur" "Maheshpur" "Majhgaon" "Manoharpur" "Nala" "Nirsa" "Pakur" "Potka" "Shikaripara" "Silli" "Sindri" "Sisai" "Tundi")


for folder in "${consti[@]}"; do
  for file in "~/Documents/ElectoralRollPDFs/completed/"$folder/*.pdf; do
    echo "$file"
    ...
  done
done

该脚本将 * 作为文字字符读取。我得到这个输出,但它应该是 number.pdf

~/Documents/ElectoralRollPDFs/completed/Baharagora/*.pdf
I/O Error: Couldn't open file '~/Documents/ElectoralRollPDFs/completed/Baharagora/*.pdf': No such file or directory.

在正确读取文件之前,我无法执行任何后续步骤。请帮忙。

最佳答案

你可以循环两次:

shopt -s nullglob   

declare dirs=(aaa bbb ccc)

for folder in "${dirs[@]}"; do
    for file in "/some/path/$folder/"*.pdf; do
        echo "$file"
        # do stuff here ...
    done
done

关于python - 在 bash 的 for 循环中读取字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51221163/

相关文章:

python - 用于安全密码处理的 pyside 小部件

python - path.exists 在 rmtree 命令后返回意外结果

python - K.gradients(loss, input_img)[0] 返回 "None"。 (Keras CNN 可视化与 tensorflow 后端)

linux - 将文件分类到同名文件夹中的 Bash 脚本

python - 解析 DeepDiff 结果

linux - 是否可以使用 Chef 在 RHEL 上使 iptables 幂等?

linux - 在linux中获取短运行程序的峰值内存(堆和堆栈)

linux - 如何在linux中创建没有父目录路径的软链接(soft link)?

bash - 如果连接中断,ffmpeg 从实时流中录制视频将关闭

Bash while read line 循环不打印条件中的每一行