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

関連情報