BASH中文本文件中的多个变量

时间:2013-12-03 21:30:02

标签: linux bash amazon-ec2

我正在通过文本文件向RSH编写脚本到服务器,并在每个系统上创建特定用户。我在一所目前正在测试Amazon EC2课程的大学工作。是否可以在文本文件中使用冒号或逗号分隔值,如下所示:

    server.edu:user123:John:email@university.edu

并将它们作为$ server $ username等传递给BASH脚本......

2 个答案:

答案 0 :(得分:1)

是的你可以像这样使用它:

> s='server.edu:user123:John:email@university.edu'
> IFS=: read server username email <<< "$s"

> echo "$server"
server.edu
> echo "$username"
user123
> echo "$email"
John:email@university.edu

EDIT :: 从文件逐行读取此数据

while IFS=: read server username email; do
   echo "$server"
   echo "$username"
   echo "$email"
done < file

答案 1 :(得分:0)

可以直接从文件中读取冒号分隔数据的行并将其索引到其中:

while IFS=: read -a userdata; do
    printf "server: %s\n"   "${userdata[0]}"
    printf "username: %s\n" "${userdata[1]}"
    printf "name: %s\n"     "${userdata[2]}"
    printf "email: %s\n"    "${userdata[3]}"
done < data_file