Does `dash` support `bash` style arrays?

后端 未结 1 753
既然无缘
既然无缘 2021-01-06 09:15

In the dash shell environment I am looking to split a string into arrays. The following code works in bash but not in dash.

         


        
1条回答
  •  离开以前
    2021-01-06 10:03

    dash does not support arrays. You could try something like this:

    var="this is a test|second test|the quick brown fox jumped over the lazy dog"
    oldIFS=$IFS
    IFS="|"
    set -- $var
    echo "$1"
    echo "$2"
    echo "$3"      # Note: if more than $9 you need curly braces e.g. "${10}"
    IFS=$oldIFS
    

    Note: Since the variable expansion $var is unquoted it gets split into fields according to IFS, which was set to a vertical bar. These fields become the parameters of the set command and as a result $1 $2 etc contain the sought after values.

    -- (end of options) is used so that no result of the variable expansion can be interpreted as an option to the set command.

    0 讨论(0)
提交回复
热议问题