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

 过程 

+

 

 

 

 

 

 

 

 

 

 

     

posted @ 2021-12-18 11:57  攻城狮联盟  阅读(83)  评论(0)    收藏  举报