shell变量
变量
$0 当前shell脚本的文件名
$1 当前shell脚本的位置参数
例如:需求通过位置变量创建用户和密码
#!/bin/bash
#1判断 传递的参数是否为2 ,如果不是,则提示该脚本如何使用
if [ $# -ne 2 ];then
echo "USAGE: $0 {Username && Password}"
exit
fi
#2. 如果符合条件,则会执行后续的操作
useradd $1
echo "$2" | passwd --stdin $1
$? 判断上级命令执行的结果 如
check nginx=$(nginx-t) result=$? /usr/sbininx if[Sresult -ne 0];then 语法检测失败 fi
$@ 所有的传递的位置参数
$# 判断总共传递的参数个数 准确
场景:做一个备份场景:会传递两个参数: { - 一个是源文件-个是 目标位置}, 控制必须是两个,不可以是三个:
分析:
1.控制仅传递两个参数: $#
1.1)两个参数:继续往下执行
1.2)超过两个参数:提示脚本应该如何使用
2.执行备份操作:
cp-rp源目标
#1.判断传递的参数:
if [ $# -ne 2 ];then
echo "USAGE: $0 { Source_ File I Dest_ File }"
exit
fi
# 2.执行拷贝动作
cp -rpv $1 $2
echo"总共传递的参数个数是:S#"
场景:做一个备份场景:会传递两个参数:(一个是源文件一个是目标位置),控制必须是两个,不可以是三个:
if [$# -ne 2 ];then echo"请仅传递两个参数:USAGE 50{src_file l dest_file}" exit cp $1 $2
变量赋值
除了自定义变量,以及系統内置变量,还可以使用read命令通过交互式方式传递变量
| read选项 | 选项含义 |
| -p | 打印信息 |
| -t | 限定时间 |
| -s | 不回显 |
| -n | 指定字符个数 |
read 示例语法

1| [root@o1dxu ~]# cat read_ 1.sh 2| #!/bin/bash 3| echo -n "Login: 4 read acc 5 echo -n "Passwd: ” 7 read pw 9 echo " account:Sacc password: $pw"
需求:使用read编写一个备份脚本,需要用户传递两参数,源和目标
read-p"请输入你要备份的源: ”Src read-p"请输入你要备份到哪:”Dest I read-p"你是否要将$Src备份到$Dest,[ Y | N ]:”Action if [ $Action == "Y" ]; then cp -rp sSrc $Dest fi
过程
+


浙公网安备 33010602011771号