Linux 如何将包含空格的变量分配给KSH中的另一个变量
我正在编写一个shell脚本来读取输入文件并逐行处理文件的内容。 我计划将每一行存储到一个数组中,然后按如下所示处理该数组Linux 如何将包含空格的变量分配给KSH中的另一个变量,linux,shell,unix,scripting,ksh,Linux,Shell,Unix,Scripting,Ksh,我正在编写一个shell脚本来读取输入文件并逐行处理文件的内容。 我计划将每一行存储到一个数组中,然后按如下所示处理该数组 #-------------------------------- # Global Variable file_path="NULL" set -A array_statements #-------------------------------- readFileIntoArray() { while IFS= read -r line do
#--------------------------------
# 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 "$@"
如何将包含空格的变量值分配给另一个变量,或将包含空格的变量值传递给KSH
中的另一个函数
谢谢最简单的方法可能是废弃当前代码并对其进行重构
array_statements=()
while read -r line; do
array_statements+=("$line")
done <"$1"
printf "%s\n" "${array_statements[@]}"
array_语句=()
而read-r行;做
数组_语句+=(“$line”)
完成最简单的方法可能是废弃当前代码并对其进行重构
array_statements=()
while read -r line; do
array_statements+=("$line")
done <"$1"
printf "%s\n" "${array_statements[@]}"
array_语句=()
而read-r行;做
数组_语句+=(“$line”)
实际上,我无法用你发布的代码重现症状。你在使用KSH吗?当然,虽然它不是我喜欢的shell。哦,我想我知道出了什么问题。您可能错误地调用了readFileIntoArray
。你能给我们看那部分代码吗?可能是重复的事实上,我不能用你发布的代码重现症状。你在用KSH吗?当然,虽然它不是我喜欢的shell。哦,我想我知道怎么了。您可能错误地调用了readFileIntoArray
。您能向我们展示这部分代码吗?将数据收集到数组中通常是一种反模式。如果您不需要绝对的随机访问,那么一次只处理一行数据将变得更加优雅和高效。将数据收集到数组中通常是一种反模式。如果您不需要绝对的随机访问,那么一次只处理一行代码将变得更加优雅和高效。