Har*_*rma 0 bash array shell-script
我不明白的命令输出存在差异,如下所述:
INPUT="$@"
echo "$INPUT ${#INPUT} ${#INPUT[@]} ${#@}"
# outputs: a b c 5 1 3
arr=(a b c)
echo "$arr ${#arr} ${#arr[@]}"
# outputs: a 1 3
Run Code Online (Sandbox Code Playgroud)
我用./my_script.sh a b c.
我知道这echo "$arr" 是取消引用$arr第一个元素,然后打印a. 同时对于$INPUT它打印的命令a b c。
对于命令${#INPUT}和${#INPUT[@]}原因分别是输出5和1。它不应该类似于命令的输出${#arr}和${#arr[@]}吗?
您将数组分配$@给一个标量 INPUT,结果是字符串a b c,长度计算结果为 5,“数组”中的元素数为 1。
也许您打算将数组分配为数组?
input=( "$@" )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |