如何在 bash 中拆分参数

How to split an argument in bash

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

我试过这样传递参数:

 ./script.sh aaaaa;bbbbb

这是 script.sh:

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

然后出现错误

 -bash: bbbbb: no se encontró la orden

这个拆分方法是不是错了?

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

./script.sh "aaaaa;bbbbb"

你也可以这样做:

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