【问题标题】:Multiple variables from text file in BASHBASH中文本文件中的多个变量
【发布时间】:2013-12-04 05:58:43
【问题描述】:

我正在将 RSH 脚本从文本文件写入服务器,并在每个系统上创建一个特定用户。我在一所大学工作,该大学目前正在为其课程测试 Amazon EC2。是否可以在这样的文本文件中使用冒号或逗号分隔值:

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

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

【问题讨论】:

    标签: linux bash amazon-ec2


    【解决方案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 但也请添加&lt; file 变体,以说明如何按照 OP 的要求从文件中读取此数据。
    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-27
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 2022-11-28
      • 1970-01-01
      相关资源
      最近更新 更多