【shell基础】
Ctrl+R 搜索之前的命令 Ctrl+D 退出 Ctrl+A 移动到行首 Ctrl+E 移动到行尾 Ctrl+U 删除光标前的内容 Ctrl+K 删除光标后的内容 Ctrl+S 锁频 Ctrl+Q 解锁 Ctrl+Y 撤销之前的操作
shell变量:用一个特定的字符串去表示不固定的内容
变量的类型
1 自定义变量 定义变量: 变量名=变量值 变量名必须以字母或下划线开头 区分大小写 引用变量: $变量名 或 ${变量名} 查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量) 取消变量: unset 变量名 作用范围: 仅在当前shell中有效
2 环境变量
定义环境变量
方法一:export back_dir2=/home/backup
方法二:export back_dir1 将自定义变量转换为环境变量
引用环境变量:$变量名或 ${变量名}
查看环境变量:echo $变量名 env 例如 env |grep back_dir2
取消环境变量:unset 变量名
变量作用范围:在当前shell和子shell有效
3 位置变量
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
4 预定义变量
$0 脚本名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功
变量的赋值方式
1 显示赋值 变量名=变量值 2 read从键盘读入变量值 read 变量名 read -p “提示信息:” 变量名 read -t 5 -p "提示信息:" 变量名 read -n 2 变量名 定义或引用变量时注意事项: " " 弱引用 ' ' 强引用 · · 命令替换 等价于$() 反引号中的shell命令会被先执行
变量的运算
1 整数运算 方法一:expr expr 1+2 expr $num1+$num2 +-*/% 方法二:$(()) echo $(($num1+$num2)) +-*/% echo $((num1+num2)) echo $((5-3*2)) echo $(((5-3)*2)) echo $((2**3)) sum=$((1+2));echo $sum 方法三:$[] echo $[5+2] +-*/% echo $[5**2] 方法四:let let sum=2+3;echo $sum let i++;echo $i 2 小数运算 echo "2*4" |bc echo "2^4" |bc echo "scale=2;6/4" |bc echo "BEGIN{print 1/2}" echo "print 5.0/2" |python
变量"内容"的删除和替换
url=www.sina.com.cn echo ${#url} 获取变量值的长度 输出:15 echo ${url} 标准查看 输出:www.sina.com.cn echo ${url#*.} 输出:sina.com.cn echo ${url##*.} 输出:cn echo ${url%.*} 输出:www.sina.com echo ${url%%.*} 输出:www
索引及切片
echo $url 输出:www.sina.com.cn echo ${url:0:5} 0:索引开始位置 5:取长度 echo ${url:5} 从5取到结束
"内容"的替换
url=www.sina.com.cn echo $(url/sina/baidu) 输出:www.baidu.com.cn echo $(url/n/N) 输出:www.siNa.com.cn echo $(url//n/N) 输出:www.siNa.com.cN

浙公网安备 33010602011771号