【问题标题】:How to split an argument in bash如何在bash中拆分参数
【发布时间】:2020-10-13 12:13:44
【问题描述】:

我有一个 bash 脚本,我只能将 1 个参数传递给该脚本,我需要将此参数拆分为两个变量。

我试过这样传递参数:

 ./script.sh aaaaa;bbbbb

这是script.sh:

 #!/usr/bin/env bash
 export VAR=$1
 export arrIN=(${VAR//;/ })
 echo ${arrIN[0]}
 echo ${arrIN[1]}

我得到错误

 -bash: bbbbb: no se encontró la orden

这种拆分方式错了吗?

【问题讨论】:

    标签: bash variables centos


    【解决方案1】:

    在传递以分号分隔的参数时,您必须使用引号。当 shell 在命令行上看到分号 (;) 时,它被视为命令分隔符,即 ./script.sh aaaaa 被视为第一个命令,bbbbb 被视为第二个命令。所以试试这样吧:

    ./script.sh "aaaaa;bbbbb"
    

    你也可以这样做:

    IFS=';' read -r -a array <<< "aaa;bbbb"
    echo "${array[0]}"
    echo "${array[1]}"
    

    【讨论】:

    • 谢谢,我错过了报价;我也尝试了你的建议,效果很好。
    猜你喜欢
    • 1970-01-01
    • 2014-03-27
    • 2015-10-16
    • 1970-01-01
    • 2019-05-24
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多