Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何将包含空格的变量分配给KSH中的另一个变量_Linux_Shell_Unix_Scripting_Ksh - Fatal编程技术网

Linux 如何将包含空格的变量分配给KSH中的另一个变量

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

我正在编写一个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 "$@"
如何将包含空格的变量值分配给另一个变量,或将包含空格的变量值传递给
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
。您能向我们展示这部分代码吗?将数据收集到数组中通常是一种反模式。如果您不需要绝对的随机访问,那么一次只处理一行数据将变得更加优雅和高效。将数据收集到数组中通常是一种反模式。如果您不需要绝对的随机访问,那么一次只处理一行代码将变得更加优雅和高效。