小编use*_*417的帖子

为什么bash数组的一部分作为命令执行?

这些示例已在运行2017-04-10版本的Raspbian Jessie的Raspberry Pi 3上运行,更新至2017年6月初.Bash版本为4.3.30(1).

在最近尝试一些代码时,我发现正在执行bash数组的内容.幸运的是他们没有危险!

这是一个简单的功能:

#!/bin/bash
echo "y.sh starting"
echo "parameter string is <$@>"
args=( $@ )
echo "args array is <${args[@]}>"
echo "args array length is ${#args[@]}"
echo "y.sh ending"
Run Code Online (Sandbox Code Playgroud)

这是输出

pi@brassica:~ $ ./y.sh
y.sh starting
parameter string is <>
args array is <>
args array length is 0
y.sh ending
pi@brassica:~ $ ./y.sh ls
y.sh starting
parameter string is <ls>
args array is <ls>
args array length is 1
y.sh ending
Run Code Online (Sandbox Code Playgroud)

这里没什么意外的.

添加y*参数后,ls命令输出将出现在数组中:

pi@brassica:~ $ …
Run Code Online (Sandbox Code Playgroud)

linux arrays bash raspberry-pi debian-jessie

2
推荐指数
1
解决办法
51
查看次数

标签 统计

arrays ×1

bash ×1

debian-jessie ×1

linux ×1

raspberry-pi ×1