我正在编写一个 shell 脚本来读取输入文件并逐行处理文件的内容。我计划将每一行存储到一个数组中,然后按如下所示处理该数组。
#--------------------------------
# Global Variable
file_path="NULL"
set -A array_statements
#--------------------------------
readFileIntoArray()
{
while IFS= read -r line
do
echo "$line"
array_statements[${#array_statements[*]}+1]="$line"
done <"$file_path"
}
printTheArray()
{
for i in ${array_statements[@]}; do
echo $i
done
}
main()
{
file_path=$1
readFileIntoArray
printTheArray
}
main "$@"
该行包含单词之间的空格 as Hello World How Are You?
。当我执行脚本并打印 array_statements 的内容时,输出是
Hello
World
How
Are
You?
如何将包含空格的变量值分配给另一个变量或将包含空格的变量传递给KSH
.
谢谢
最简单的前进路线可能是废弃您当前的代码并对其进行重构。
array_statements=()
while read -r line; do
array_statements+=("$line")
done <"$1"
printf "%s\n" "${array_statements[@]}"
由于代码简化了这么多,将任何内容封装在单独的函数中可能没有多大意义。
请特别注意缺少引号${array_statements[@]}
将如何将它们分解成一个快乐的疯狂字符串,从而丢失任何数组元素边界。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句