变量名=变量值
变量类型:
自定义变量:a=1
环境变量:由系统定义的变量名
使用 export 查看有哪些环境变量$PATH $USER $PWD
位置变量:$1,$2,$3...$n $*
预定义变量:预先设置的变量
$# : 用于保存脚本的参数个数
$* :所有位置变量
$? :验证上一条命令是否执行成功
$0 :当前程序或脚本的名称
符号:
双引号:" "允许变量值中使用空格
单引号:' ' 禁止引用其他变量值,$引用符号会变成普通符号
echo '$a' → 输出$a
反撇号:``命令替换,提取命令执行后的输出结果
echo `expr 2 + 2` → 输出4
反斜杠:\转义符,输出并保留原有的意义
\a发出警告声;\b删除前一个字符;\c不产生进一步输出 (\c 后面的字符不会输出);\f换行但光标仍旧停留在原来的位置;\n换行且光标移至行首;\r光标移至行首,但不换行;\t插入tab;\v与\f相同;\\插入\字符;\nnn插入nnn(八进制)所代表的ASCII字符;
计算工具:expr
+(加法) -(减法) \*(乘法) /(除法) %(取余)
计算器
for ((i;;))
do
read -p "请输入第一个数字:" a
read -p "请输入第二个数字:" b
read -p "请输入你要进行的运算:
输入1:执行加法
输入2:执行减法
输入3:执行乘法
输入4:执行除法
输入5:执行取余
输入6:退出计算器 " c
case $c in
1)
echo $a+$b=`expr $a + $b`
;;
2)
echo $a-$b=`expr $a - $b`
;;
3)
echo $a*$b=`expr $a \* $b`
;;
4)
echo $a÷$b=`expr $a / $b`
;;
5)
echo $a%$b=`expr $a % $b`
;;
6)
echo " *已退出*"
exit
esac
done
99乘法表
#!/bin/bash
for ((i=1;i<10;i++))
do
for ((k=1;k<=i;k++))
do
a=$(expr $i \* $k)
echo -n $i*$k=$a
echo -n " "
done
echo
done
练习
1,利用位置变量写计算器脚本 2,写一个修改IP的脚本 3,写一个安装apache脚本
1,脚本变量计算器:
#!/bin/bash
echo $1+$2=$(expr $1 + $2)
echo $1-$2=$(expr $1 - $2)
echo $1*$2=$(expr $1 \* $2)
echo $1÷$2=$(expr $1 / $2)
echo $1%$2=$(expr $1 % $2)
运行结果:

2,修改IP脚本
read -p "请输入网卡名称:ens- " name
read -p "请输入IP地址:192.168.x.x " ip
read -p "请输入网关地址:192.168.x.x " gateway
read -p "请输入DNS地址:" dns
touch /etc/sysconfig/network-scripts/ifcfg-ens$name
echo "TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens$name
UUID=99091610-7b81-479e-9b14-26819532bad3
DEVICE=ens$name
ONBOOT=yes
IPADDR=$ip
PREFTX=24
GATEWAY=$gateway
DNS1=$dns
DNS2=8.8.8.8" > /etc/sysconfig/network-scripts/ifcfg-ens$name
cat /etc/sysconfig/network-scripts/ifcfg-ens$name
运行结果

3,安装apache脚本
tar -zxvf httpd-2.4.23.tar.gz -C /usr/src/
cd /usr/src/httpd-2.4.23/
sleep 0.5
rpm -ivh /media/Packages/apr-1.4.8-3.el7.x86_64.rpm
rpm -ivh /media/Packages/apr-devel-1.4.8-3.el7.x86_64.rpm
rpm -ivh /media/Packages/apr-util-1.5.2-6.el7.x86_64.rpm
rpm -ivh /media/Packages/expat-devel-2.1.0-8.el7.x86_64.rpm
rpm -ivh /media/Packages/libdb-devel-5.3.21-19.el7.x86_64.rpm
rpm -ivh /media/Packages/cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm
rpm -ivh /media/Packages/openldap-devel-2.4.40-13.el7.x86_64.rpm
rpm -ivh /media/Packages/apr-util-devel-1.5.2-6.el7.x86_64.rpm
rpm -ivh /media/Packages/pcre-devel-8.32-15.el7_2.1.x86_64.rpm
sleep 1
./configure --enable-so --prefix=/usr/local/httpd --enable-sockets --enable-cgi --enable-charset-lite
sleep 0.5
make
sleep 1
make install
sleep 0.5
/usr/local/httpd/bin/apachectl start
rpm -ivh /media/Packages/lynx-2.8.8-0.3.dev15.el7. x86_64.rpm
lynx 127.0.0.1
exit
1465

被折叠的 条评论
为什么被折叠?



