shell脚本语法

一、解释器

        

第一行,声明脚本使用的bash解释器      

(#! /bin/env 解释器 #自动查询解释器)

二、 变量

1. 变量的定义和初始化

【变量的规范】

        (1)   严格区分大小写

      (2)不能含有特殊符号

      (3) 变量名不能数字开头

      (4) 赋值过程中,等号左右不能有空格

    #定义变量与初始化
    var=hello
    hostname='hostname'
    coreVersion=$(uname -r)

    #打印变量的值
    echo $var
    echo ${var}
    echo ${var:2:3}

    #变量重新初始化
    var=world

    #取消变量的定义
    unset var

2.  给变量赋值 (read)

【基本语法】

        read [选项] 变量名

【选项】

        -p        定义提示用户的信息

        -n        限制变量的长度

        -s        不显示用户输入的内容

        -t        限制用户输入的时间

#用户输入变量
read -p "please input your name: " name
echo -e "your name is : ${name} " 

#从文件中导入变量
read -p "请输入IP地址:" IP < ip.txt

3. 定义有类型的变量 

【基本语法】

        declare 选项 变量名+变量值

【选项解析】

        -i        定义整型变量

        -r        定义只读变量

        -a        定义普通数组

        -A        定义关联数组

        -x        将变量通过环境导出(等同于export)

#定义整型变量
[root@node1 shell]# declare -i num=12
[root@node1 shell]# echo $num
12
[root@node1 shell]# num=hello
[root@node1 shell]# echo $num
0
[root@node1 shell]#

#定义只读变量
[root@node1 shell]# declare -r varStr=hello
[root@node1 shell]# echo $varStr
hello
[root@node1 shell]# varStr=world
-bash: varStr: readonly variable

#定义环境变量
[root@node1 shell]# declare -x environment=hello world
[root@node1 shell]# env|grep environment
8:environment=hello

4. 变量的类型

        本地变量 : 只对当前进程生效 

        环境变量 : 子进程可调用

        全局变量 : 所有用户和进程都可以调用

        系统变量 : 内置bash中,无法修改

全局变量相关配置文件:

#当前用户的bash信息 用户登陆的时候读取
$HOME/.bashrc 
#当前用户的环境变量 用户登陆的时候读取
$HOME/.bash_profile
#退出当前shell的时候读取
$HOME/.bash_logout
#全局的bash信息 所有用户皆生效
/etc/bashrc
#全局的环境变量信息
/etc/profile

 用户登陆系统时的文件读取顺序

        /etc/profile

        $HOME/.bash_profile

        $HOME/.bashrc 

        /etc/bashrc

        $HOME/.bash_logout

          

其他

  1. 查看命令执行成功与否(成功返回0)

$?

2. 查询时间并打印       

echo "time: $(date)"

echo "time: $(date + '%F %T')"

3. 在某个文件夹下创建多个目录

mkdir -p /tmp/dir{1..3} 

4. 检查是否在线


for((i=0;i<254;i++));do x=`ping 10.42.204.$i -c 1 -w 1 |grep icmp_seq|wc -l`;if [ $x -ne 0 ];then echo "10.42.204.$i online";else echo "10.42.204.$i offline";fi;done

5. iostat

iostat -x 1 -N 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值