预定义变量

$0 脚本名/程序名
$* 所有的参数
$# 参数的个数
$? 上一个程序的返回值(0是成功,非零失败)
$$ 程序的PID

示例

定义脚本

[root@localhost ~]# vim avg.sh
#!/bin/bash
echo "($1+$2)/2" |bc
echo "该程序名为$0"
echo "该程序使用了 $# 个参数"
echo "该程序的参数如下: $*"

调用脚本

[root@localhost  ~]# ./avg.sh 60 50
55
该程序名为./avg.sh
该程序使用了2 个参数
该程序的参数如下: 60 50

总结

  • 这两类变量,在设计系统时就已经定义好了。
  • 需要使用时,直接调用即可。


练习

自动创建用户并设置初始密码的脚本

#!/bin/bash
read -p "please input username: " name
useradd $name
echo "123456" | passwd --stdin $name &> /dev/null
echo "$name create finished,the password is 123456"


编写脚本,配置本地yum源

#!/bin/bash

mount /dev/cdrom /mnt &> /dev/null

rm -rf /etc/yum.repos.d/*
cat << EOF > /etc/yum.repos.d/yum.repo
[local]
name=localyum
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF

[root@localhost ~]#yum repolist all

Shell编程及自动化运维(5)预定义变量_linux