Shell变量:自定义变量(三)

1、实例:

  • 编写测试主机在线的脚本,当主机在线提示在线,当主机不在线提示不在线。

  • 使用变量前:

  • [root@localhost ~]#  vim ping.sh    #编写程序
    ping -c1 192.168.151.161 &> /dev/null && echo 192.168.151.161up || echo 192.168.151.161down    
    #&&和||是三目表达式:&&前面的命令成功。执行后面的命令,||前面的命令失败,执行后面的命令
    
    [root@localhost ~]# chmod +x ping.sh    #授权脚本
    
    [root@localhost ~]# ./ping.sh     #执行脚本
    

    如果更换测试ip。需要修改脚本的三个部分。

    • Shell变量:自定义变量(三)_第1张图片 

  • 使用变量后:

    • [root@localhost ~]# vim ping.sh    #编写脚本
      #!/bin/bash 
      ip=192.168.151.1 
      ping -c1 $ip &> /dev/null && echo "$ip up" || echo "$ip down"
      
      
      [root@localhost ~]# chmod +x ping.sh    #授权脚本
      
      
      [root@localhost ~]# ./ping.sh    #执行脚本

      添加变量后,修改一处即可

    • Shell变量:自定义变量(三)_第2张图片

2、交互定义变量:

  • read从键盘读入变量值,命令格式:read 变量名

    示例:
    • [root@localhost ~]#  vim ping.sh    #编写程序
      
      read -p "请输入需要测试的IP:" ip
      ping -c1 $ip &> /dev/null && echo "$ip up" || echo "$ip down"
      

      Shell变量:自定义变量(三)_第3张图片

  • 注意事项:

    • 3种引号:“ ”弱引用 ' '强引用 ` `优先执行(定义或引用变量时注意事项)

      •         双引号:

        • [root@localhost ~]# schoo=1000 phone
          -bash: phone: 未找到命令
          [root@localhost ~]# schoo="1000 phone"
          [root@localhost ~]# echo $schoo
          1000 phone    #结果
          

          单引号:

          [root@localhost ~]# schoo='$schoo 666'
          [root@localhost ~]# echo $schoo
          $schoo 666    #结果
          
        • 反引号:

          [root@localhost ~]# schoo=`date`
          [root@localhost ~]# echo $schoo
          2023年 11月 10日 星期五 21:24:53 CST    #结果

3、注意: 

    • 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名需遵守如下规则:

    1. 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

    2. 中间不能有空格,可以使用下划线(_)。

    3. 不能使用标点符号。

    4. 不能使用bash里的关键字(可用help命令查看保留关键字)。

    5. 起变量名,请使用五个字母以上。

你可能感兴趣的:(Shell,linux,bash)