linux shell $*与$@的使用
时间: 2023-08-03 17:05:24 浏览: 60
$*和$@都是用来表示传递给脚本或函数的所有参数,但是它们有一些不同之处。
$*将所有参数看作一个单词,如果参数中有空格,会将其看作不同的参数。在使用$*时,会将所有参数看作一个字符串,以"$1 $2 $3 ..."的形式返回。例如:
```
#!/bin/bash
function func1 {
for arg in "$*"
do
echo $arg
done
}
func1 1 2 3
```
输出结果为:
```
1 2 3
```
$@将每个参数看作是一个独立的单词,如果参数中有空格,会将其看作一个参数。在使用$@时,会将所有参数看作独立的字符串,以"$1" "$2" "$3" ...的形式返回。例如:
```
#!/bin/bash
function func2 {
for arg in "$@"
do
echo $arg
done
}
func2 1 2 3
```
输出结果为:
```
1
2
3
```
因此,在大多数情况下,我们应该使用$@而不是$*。
相关问题
linux7 $0、$?、$!、$$、$*、$#、$@常用语法
这些是 Linux Shell 环境中的特殊变量,用于获取一些特定的信息。常用的语法如下:
1. `$0`:表示当前脚本的名称。
2. `$?`:表示上一条命令的退出状态。如果命令执行成功,其值为 0;否则为非零值。
3. `$!`:表示后台运行的最后一个进程的进程号。
4. `$$`:表示当前 Shell 进程的进程号。
5. `$*`:表示所有位置参数的列表(作为一个单词输出)。
6. `$#`:表示传递给脚本或函数的位置参数的个数。
7. `$@`:表示所有位置参数的列表(作为多个单词输出)。
这些变量在 Shell 脚本中经常用于参数传递、错误处理以及进程管理等方面。希望能对你有所帮助!如果有更多问题,请随时提问。
linux shell $作用4
在 Linux Shell 中,$ 符号有以下四种作用:
1. 变量引用:可以用 $var_name 的形式来引用一个变量,例如 $HOME 表示当前用户的主目录。
2. 环境变量引用:可以用 $ENV_VAR_NAME 的形式来引用一个环境变量,例如 $PATH 表示当前用户的可执行文件路径。
3. 命令替换:可以用 $(command) 或者 \`command\` 的形式来替换一个命令的输出结果,例如 $(date) 表示当前日期。
4. 脚本参数引用:可以用 $1、$2、$3 等来引用脚本的参数,例如 $1 表示脚本的第一个参数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)