变量:
环境变量:系统已经定义好的变量,可以直接用
USER UID HOME
通过env这个命令去查看系统变量
set
UID为0的用户就是root用户
用户变量:需要用户之间定义的变量
变量名=变量的值
a=10
查看变量:
# echo $变量名
双引号和单引号的区别:
“”:如果包含变量,输出变量的值
‘’:里面是什么,输出的就是什么
定界符:
``:将里面包含的命令的输出结果显示出来
变量名跟常量名拼接的时候:
{}:区分变量和常量
# echo ${a}log
变量的范围:
局部变量:只针对本次shell有效
尽量在脚本里定义赋值变量
全局变量:环境变量就是典型的全局变量
export 可以声明变量为全局变量
但不建议
# bash 进入子进程中
删除变量:
# unset 变量名
shell中涉及到的命令:
read 命令
实现从键盘读取输入的内容赋值给变量名
read -p “提示内容:” user
-t 设置超时的时间
echo $user
运算符:
+ - * / %
+=
-= *= /* %=
执行运算:
1. $(( a * b ))
可以用空格
里面的运算符不需要转义
如果和字符串相加,字符串的变量默认为0
不支持浮点数运算
2. expr a + b
数字两遍必须有空格 (空格要一个以上)
里面的运算符需要转义 转义符 \
不支持数字和字符串相加
3. [] 使用方括号
echo $[a*b]
echo $[a+b]
可以直接调用变量的值,无需添加$符号
可以有空格
里面的运算符不需要转义
不支持浮点数运算
浮点数运算:
bc //linux自带的计算器
//支持变量运算
scale //指定小数点后面保留几位
如何应用到脚本中:
用管道符号:
# echo “scale=5,; 10/3” | bc
运算多行:
d=`bc << EOF d=$(bc << EOF
1+2 1+2
3+4 3+4
5*6 5*6
EOF EOF
` )
`` 和 $ (命令)
//效果是一样的
退出状态:
# echo $?
查看上一个命令执行的退出状态
返回值为0时,代表命令执行成功
非0的正整数时,执行不成功
0-255
exit=$(echo $?)
0 命令成功结束
1 一般性未知错误
2 不适合shell的命令
126 命令不可执行
127 命令未找到
128 无效的退出参数
130 通过Ctrl+c 终止得命令
255 正常范围之外的退出状态码
状态码是可以自己定义的: 0-255
a=10
exit $a
//自定义返回值