![Bash 스크립트에서 실행 파일의 경로를 올바르게 제공하십시오.](https://linux55.com/image/140621/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%8B%A4%ED%96%89%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%EA%B2%BD%EB%A1%9C%EB%A5%BC%20%EC%98%AC%EB%B0%94%EB%A5%B4%EA%B2%8C%20%EC%A0%9C%EA%B3%B5%ED%95%98%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
안녕하세요 여러분, 바이너리 파일의 전체 경로가 포함된 텍스트 파일(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