变量名=变量值
注意:等号前后不能有空格
使用变量的时候,需要使用${}包裹
变量的作用域
局部:自己定义的脚本文件
全局:环境设置文件(系统【/etc】、个人[$HOME])
export AA="Hello Shell Var"
系统环境变量,默认是系统启动的时候加载,所以修改后需要使用source命令使修改生效
clear
read -p "用户名:" logName
read -s -p "密码:" logPwd
echo -e "\n你输入的用户名为:${logName} 密码为:${logPwd}"
exit 0
# 数值计算,需要使用 $[] 或者 $(()) 进行包裹,运算符有: + - * / % **
# 输入一个3位的正整数,计算每位数相加之和
read -p "输入一个3位的正整数:" num
# 123
gw=$[num%10]
sw=$[num/10%10]
bw=$[num/100]
result=$[gw+sw+bw]
echo "结果为:${result}"
$# 获取参数个数
$n n是数字,表示获取第几个参数,从1开始
$* 获取所有参数,后面可用于循环遍历
$? 获取上一个命令执行的结果 如果是0表示正常执行,非0表示执行有误
cp 本机复制
scp 跨本机复制 scp [-r] 要复制的文件 root@127.0.0.1:/路径 需要ssh的支持
cp file2 file2
# 判断式 可以用于字符串 数值 以及 文件的判断
# 判断数值:-eq (=) -ne(!=) -ge(>=) -le(<=) -gt(>) -lt(<)
[root@node scripts]# test 1 -ne 2; echo $?
0
[root@node scripts]# test 1 -ne 1; echo $?
1
# 判断字符串: = != -z(字符串长度为0) -n(字符串长度不为0
| 如果文件或文件夹存在则为真 |
|
| 如果文件夹存在则为真 |
|
| 如果文件存在则为真 |
|
| 如果文件为非空白文件则为真 |
[root@node scripts]# test -n "" ; echo $?
1
[root@node scripts]# test -n "aa" ; echo $?
0
[root@RHEL7-1 scripts]# test -e /root/scripts/sh01.sh ; echo $?
0
[root@RHEL7-1 scripts]# test -e /root/scripts ; echo $?
0
[root@RHEL7-1 scripts]# test -f /root/scripts ; echo $?
1
[root@RHEL7-1 scripts]# test -d /root/scripts ; echo $?
0