如何在 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]}"
我有一个 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]}"