$@ 跟$* 那个可以作为数组
时间: 2023-08-05 12:07:10 浏览: 241
在shell脚本中,"$@" 和 "$*" 都可以被视为数组。
- "$@" 代表脚本的所有参数,每个参数都是一个独立的元素。可以通过使用索引来访问特定的参数,例如 "$@[0]" 表示第一个参数。可以像数组一样使用循环遍历所有参数。
- "$*" 代表将所有参数作为一个单独的字符串,参数之间用IFS(内部字段分隔符)中定义的分隔符隔开。默认的IFS是空格。可以使用引号将 "$*" 转换为数组,并使用循环遍历每个元素。
例如,假设脚本名称为 `script.sh`,并且在命令行中执行了以下命令:`./script.sh arg1 arg2 arg3`。你可以这样在脚本中使用这两个特殊变量:
```bash
#!/bin/bash
# 使用 "$@"
echo "使用 \$@:"
for arg in "$@"; do
echo $arg
done
# 使用 "$*"
echo "使用 \$*:"
for arg in "$*"; do
echo $arg
done
```
输出会是:
```
使用 $@:
arg1
arg2
arg3
使用 $*:
arg1 arg2 arg3
```
所以,无论是使用 "$@" 还是使用 "$*" 都可以在脚本中将所有参数看作数组来处理。
阅读全文