查找历史命令 history | grep xxx
1、定义变量 变量名 = 变量值 // 驼峰命名
2、复用变量 可使用$变量 或者 ${变量}
3、查看变量 echo $变量名 set 显示所有的变量,包括自定义和环境变量
4、取消变量 unset 变量名 作用范围: 当前终端
系统的环境变量 //全局变量
export export 变量 ,将⾃定义变量转换成环境变量
定义的变量最好不要和系统变量相同 否则会被覆盖
如:
结果如下:
系统变量显示当前 路径
变量永久生效 需要在 /etc/profile 中使用export PATH =$ PATH: /test/bin
然后使用source /etc/profile
进行生效
#! /usr/bin/bash
ping -c1 $?&>/dev/null
if [ $1 -eq 0 ];then
echo "$1 is ok !"
else
echo "$1 is error!"
fi
~
~
ping -c 1,表示只发送一个icmp echo_request 包
&> /dev/null的意思就是把你运行ping命令的过程转向到/dev/null中,在linux中,/dev/null就是无底洞的意思,意思就是说,你ping命令执行的过程(一般会显示反回结果)你不想看到,所以就丢这里了。
位置参数变量
$1 、$2、$3、$4、$5、$6、$7、$8、
8
、
8、
8、{10} sh test.sh 参数1 参数2 …参数10
预先定义变量
$0 脚本⽂件名
$* 所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的 PID
$! 上⼀个后台进程的 PID
$? 上⼀个命令的返回值 0 表示成功
2.变量赋值⽅式
read -p "提示信息: " 变量名
定义或引⽤变量时注意事项: " " 弱引⽤ ’ ’ 强引⽤
" "对于字符串 来说 echo “xxx” 显示xxx 解析里面的内容 内容如果是命令则解析不了 。
’ ’ 所见即所得
$( ) 反引号中的 shell 命令会被先执⾏
3.变量数值运算
1.整数运算 expr + - * / % expr 1 + 2 expr $num1 + $num2
2.整数运算 $(()) + - * / % echo $(($num1+$num2)) echo $((num1+num2))
3.整数运算 $[ ] + - * / % echo $[5+2]
4.整数运算 let + - * / % let sum=2+3; echo $sum
5.⼩数运算 bc + - * / %
echo "2*4" |bc
echo "2^4" |bc
4.变量删除替换(并不改变原变量的值)
1.从前往后删除变量内容 url =www.baidu.com
echo ${url#*.} 结果 baidu.com
//获取变量值的⻓度
[root@bgx ~]# echo ${#url}
2.从后往前删除变量内容
echo ${url%.*}
3.索引及切⽚
echo ${url:0:5}
echo ${url:5:5}
echo ${url:5}
4.变量内容替换
[root@bgx ~]# url=www.sina.com.cn
[root@bgx ~]# echo ${url/sina/baidu}
echo ${url/n/N}
echo ${url//n/N}
5.变量替代
${变量名-新的变量值}
变量没有被赋值:会使⽤“新的变量值“ 替代
变量有被赋值(包括空值): 不会被替代
${变量名:-新的变量值}
变量没有被赋值(包括空值): 都会使⽤“新的变量值“ 替代
变量有被赋值: 不会被替代