linux - Shell脚本从5个不同的目录获取数据

标签 linux bash shell unix

我正在尝试运行 shell 脚本来从多个目录获取数据。 我的目标 (targetDir) 有 5 个目录。因此,该程序在执行时应该从这 5 个不同的目录中搜索数据,但是当我执行它时,它将所有 5 个文件夹视为同一行。有什么建议吗?

targetDir="snavis_bub snavis_bub2 snavis_bub3 snavis_hdw snavis_ldw"
datadir=/opt/pkg/home/tools/zform/marnel/$targetDir/of_inspect

执行后:

./orsInspect.sh: line 60: 
cd: /opt/pkg/home/tools/zform/marnel/snavis_bub,snavis_bub2,snavis_bub3,snavis_hdw,snavis_ldw/oref_inspect: No such file or directory

最佳答案

你可以做很多事情。例如,您可以使用数组和 for 循环,并在循环的每次迭代中执行一项任务:

#!/bin/bash
declare -a targetDirs=("snavis_bub" "snavis_bub2" "snavis_bub3" "snavis_hdw" "snavis_ldw")

for the_dir in "${targetDirs[@]}" ;do
    datadir="/opt/pkg/home/tools/zform/marnel/${the_dir}/of_inspect"
    echo "$datadir"
    # ... do something for each datadir
done

示例输出(只是回显):

/opt/pkg/home/tools/zform/marnel/snavis_bub/of_inspect
/opt/pkg/home/tools/zform/marnel/snavis_bub2/of_inspect
/opt/pkg/home/tools/zform/marnel/snavis_bub3/of_inspect
/opt/pkg/home/tools/zform/marnel/snavis_hdw/of_inspect
/opt/pkg/home/tools/zform/marnel/snavis_ldw/of_inspect

关于linux - Shell脚本从5个不同的目录获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50635237/

相关文章:

linux - 如何在linux中将net-snmp默认端口更改为比1024小1?

linux - 为什么 if [ !$(grep -q) ] 不起作用而 if grep -q 起作用?

java - 我可以通过Java运行交互式脚本吗?

linux - 如何在 GDB 中使用 shell 命令的输出作为 GDB 命令的参数?

linux - 土坯空气 : version number does not start with digit

linux - 具有多个 screen session 的 Shell 脚本不执行任何操作

linux - shell 脚本 : Check if file exists in directory from a list file

shell - 转义 shell 命令行嵌套引号

c - UDP套接字的源端口和目标端口?

bash - 如何在 bash 变量中转义换行符和制表符?