25.11.25 shell变量

变量名=变量值

变量类型:

自定义变量: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值