Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Arrays 读取文件并使用bash影响数组中的拆分结果_Arrays_Bash - Fatal编程技术网

Arrays 读取文件并使用bash影响数组中的拆分结果

Arrays 读取文件并使用bash影响数组中的拆分结果,arrays,bash,Arrays,Bash,我的代码逐行读取文件,并用逗号分隔每行;或者空间,结果会影响数组,但问题是我无法读取数组的elmen #!/bin/bash filename="$1" while read -r line do name=$line echo "Name read from file - $name" arr=$(echo $name | tr ";" "\n") echo ${arr[1]} for x in $arr do echo "> [$x]" var1=$x var2=

我的代码逐行读取文件,并用逗号分隔每行;或者空间,结果会影响数组,但问题是我无法读取数组的elmen

#!/bin/bash
filename="$1"
while read -r line
do
name=$line
    echo "Name read from file - $name"
 arr=$(echo $name | tr ";" "\n")

echo ${arr[1]}

for x in $arr
do
    echo "> [$x]"
var1=$x
var2=$x
done

done < "$filename"
我使用的文件包含以下行:

car; vehicle
computer;apple 

要在数组中循环,请执行以下操作:

for x in "${arr[@]}"; do
    echo "> [$x]"
done
while IFS=';' read -ra arr; do
   printf "[%s]\n" "${arr[@]}"
   echo '----------'
done < file
${arr[@]}
扩展将包括整个数组,而
$arr
仅包括第一个数组元素

但是,如果将
read-ra
与自定义
IFS
一起使用,则可以直接将每个分隔线读取到数组中:

for x in "${arr[@]}"; do
    echo "> [$x]"
done
while IFS=';' read -ra arr; do
   printf "[%s]\n" "${arr[@]}"
   echo '----------'
done < file

要在数组中循环,请执行以下操作:

for x in "${arr[@]}"; do
    echo "> [$x]"
done
while IFS=';' read -ra arr; do
   printf "[%s]\n" "${arr[@]}"
   echo '----------'
done < file
${arr[@]}
扩展将包括整个数组,而
$arr
仅包括第一个数组元素

但是,如果将
read-ra
与自定义
IFS
一起使用,则可以直接将每个分隔线读取到数组中:

for x in "${arr[@]}"; do
    echo "> [$x]"
done
while IFS=';' read -ra arr; do
   printf "[%s]\n" "${arr[@]}"
   echo '----------'
done < file

我认为需要重新检查您关于
arr=$(echo$name | tr”;“\n”)
正在创建数组的假设。我认为您关于
arr=$(echo$name | tr”;“\n”)
正在创建数组的假设需要重新检查。我想影响var1=${arr[1]}和var2=${arr[2]},但问题是当我创建echo${arr[1]}这没有给出任何信息,因此我无法访问带有索引号的数组。您希望在
var1
var2
中使用什么值?在var1=${arr[1]}和var2=${arr[1]}中使用什么值,但问题是${arr[1]}没有返回任何内容,所以在var1=car和var2=vehicle中,无论什么东西不起作用,请提供这样的演示,我将建议您进行修复。我想影响var1=${arr[1]}和var2=${arr[2]},但问题是,当我回送${arr[1]}时,这没有任何作用,因此,我无法访问带有索引号的数组。在
var1
var2
中,您想要什么值?在var1=${arr[1]}和var2=${arr[1]}中,但是问题echo${arr[1]}没有返回任何值,因此在var1=car和var2=vehicle中,无论什么都不起作用,请提供这样的演示,我将建议您解决。