在 bash 脚本中正确提供可执行文件的路径

在 bash 脚本中正确提供可执行文件的路径

大家好,我有一个文本文件(1.txt),其中包含二进制文件的完整路径,我需要为文件中的每个路径执行命令(val_bin)。

1.txt示例:

/source/ed/dev/ed/ab/ed_len/comercial/bin/APP1.bin 
/source/ed/dev/ed/ab/ed_lap/comercial/bin/APP2.bin 
/source/ed/dev/ed/ab/ky_len/Industrial/bin/APP3.bin
...

命令示例:val_bin-为 1.txt 中的每条记录创建一个 html 文件,
例如

val_bin -output <DESTINATION.html> -path </source/ed/dev/ed/ab/ed_len/comercial/bin/APP1.bin>

其中 -output 应该具有每次命令结束后创建 html 文件的路径(“DESTINATION”)。其中 -output 应指定 name.bin.html(例如 App1.bin.html)

其中 -path 需要是输入命令的整个路径

示例输出:(其中 /tmp 是 html 文件的目标)

> ll /tmp
/tmp/APP1.bin.html
/tmp/APP2.bin.html
/tmp/APP3.bin.html
...

我已经尝试了几种不同的循环选项,但现在正在研究纯 awk。

答案1

无需编写脚本。

xargs -I NAME val_bin -output /tmp/$(basename NAME).html -path NAME < 1.txt

答案2

我猜你想要这个:

dest_dir=/tmp
while IFS= read -r bin; do
    if [[ ! -f "$bin" ]]; then
        printf "No such file: %s\n" "$bin"
    else
        output="$dest_dir/$(basename "$bin").html"
        val_bin -output "$output" -path "$bin"
    fi
done < 1.txt

相关内容