我有一个bash脚本可以
:
- 读取文件中的行;
- 将每行的值设置为参数;和
- 使用参数作为路径的一部分。
fileName='s3Path.txt'
while IFS='' read -r line || [[ "$line" ]]; do
printerType=$line
gcPath=s3://gc-reporting-pud-production/structured_printer_log_files/
gcFullPath=$gcPath$printerType
echo $gcFullPath
done < $fileName
循环在文件的第一行之后停止。我该怎么解决?
答案 0 :(得分:1)
我无法重现您的问题。对我来说,循环遍历某个测试文件中的所有行。
您可以尝试以下脚本,该脚本基本上与循环执行相同的操作。我还希望这个替代脚本比您的循环更有效率。
mapfile -t lines < s3Path.txt
printf 's3://gc-reporting-pud-production/structured_printer_log_files/%s\n' "${lines[@]}"
答案 1 :(得分:0)
编写bash script
时,脚本应以以下内容开头:
#!/bin/bash
明确指定要使用bash(如果您使用bash
作为shell,则可以不使用bash。
我已经执行了您的脚本,并且可以很好地处理我的输入数据。
问题的根源可能是:
#!/bin/bash