该脚本应从文件(例如 input.txt)读取输入,将文件的每一行(N 行)存储在单独的变量中,并在不同的位置唯一地使用每个变量。
例如,一个文件有 4 行 - A B C D,这些应该存储在 4 个变量中。
答案1
下面将把 的每一行加载/tmp/file
到一个数组中,因此1
可以通过变量${array[0]}
等访问该行。
#!/bin/bash
IFS=$'\n' array=($(cat /tmp/file))
答案2
正如 Kusalananda 指出的,这听起来像是一个 xy 问题。
您的问题的可能awk
解决方案是:
awk 'BEGIN{ RS = ""; FS = "\n"}{print "First name:",$1,"Second name:",$2,"Org name",$3,"CN name:",$4}' input
如果您决定使用 shell 变量,我认为您需要这样的东西:
#!/bin/bash
input=/path/to/input
mapfile -t array <"$input"
# If you don't have bash v3 use this instead of mapfile
# OLDIFS=$IFS
# IFS=$'\n'
# array=($(cat input))
# IFS=$OLDIFS
echo "First name: ${array[0]}, Second name: ${array[1]}, Org name: ${array[2]}, CN name: ${array[3]}"