shell常用默认变量如下:
一、文件参数变量
在执行脚本时,可以向脚本传递参数。$1是第一个参数,$2是第二个参数,以此类推。而$0是文件名,包含路径。给大家举个栗子吧。
1.创建文件test.sh
2.vim test.sh
3.按i进入编辑模式
4.#!/bin/bash
echo "文件名:" $0
echo "第一个参数:" $1
echo "第二个参数:" $2
5.执行脚本 ./test.sh aaa zzz #记得在执行前给文件加执行权限 chmod +x test.sh
(以下为输出)
文件名:./test.sh
第一个参数:aaa
第二个参数:zzz
二、其他参数变量
1.$#:意思是传进文件传了几个参数,就像上面举的例子是两个参数
2.$*:由所有参数构成的用空格隔开的字符串,如上例为"$1 $2"
3.$@:每个参数分别用双引号括起来的字符串,如上例为"$1" "$2"
(其实第二个和第三个实际中用的差不多,虽然两个东西定义不同)
4.$$:脚本当前运行的进程ID
5.$?:上一条命令的退出状态(exit code),0表示正常,其他值表示错误。可以拿return来理解
6.$(command):返回这条命令的stdout。其实说白了就是标准输出。
7.`comdmand`:返回这条命令的stdout。注意不是单引号,是tab键上面的那个符号
(第六个和第七个实际上用的也差不多,但还是有区别的,第六个能嵌套使用,但第七个不能)