分享

Linux Shell:shell变量及类型

 tycoondeng 2022-06-13 发布于广东

Shell变量:就是用一个特定的字符串去表示不固定的内容。定义变量的语法格式:

变更名=变更值;

在Shell中,第一次使用某个变量时,实际上就是定义了这个变量。如果没有给出变量值,则变量会被赋值为一个空字符串。

Shell变量的类型:

Shelll变量分为四类:分别是自定义变量、环境变量、位置变量和预定义变量。

自定义变量:根据需求临时定义的变量。自定义变量可以理解为局部变量或普通变量,只能在Shell函数或脚本中使用。自定义变量的说明如下:

定义自定义变量: 变量名=变量值

使用自定义变量:$变量名

查看自定义变量:echo $变量名

取消自定义变量:unset 变量名

举例:自定义变更在脚本中的使用(一个ping 通主机的脚本)

# cat ping01.sh

#!/bin/bash

ip=192.168.1.1    #定义一个自定义变更ip

ping -c1 $ip &>/dev/null      # 将ping 的结果放在/dev/null (称为垃圾箱)

环境变量:也称为全局变量,可以创建它位的shell及其派生出来的任意子进程shell中使用。环境变更说明如下:

定义环境变量:使用export命令声明即可。例如,export back_dir

使用环境变量:$变量名  或${变量名}

查看环境变量:echo $变量名  或 env \grep back_dir

取消环境变量:unset 变量名

举例:环境变更在脚本中的使用

# cat ping02.sh

#!/bin/bash

ip=192.168.1.1    #定义一个自定义变更ip

ping -c1 $ip &>/dev/null      # 将ping 的结果放在/dev/null (称为垃圾箱)

if [$? -eq 0 ] ;then       # $?的意思是上一条命令的返回值,如果返回值为0,表示主机正常;否则表示宕机

    echo "$ip is up!"

else 

    ech0 "$ip is down!"

fi

位置变更:位置变量用于在命令行、函数或脚本中传递参数,其变量名不用自己定义,其作用也是固定的。在执行脚本时,通过在脚本后面给出具体的参数(多个参数之间使用空格隔开)对相应的位置变量进行赋值。位置变更说明如下:

$0:代表命令本身:

$1-$9:代表接收的第1-9个参数;

$10以上:需要使用{} 括起来,比如${10}:代表接收的第10个参数。

预定义变量:预定义变量在shell中可以直接使用,位置变更也是预定义变量的一种。预定义变量说明如下:

$0:脚本名

$*:所有的参数

$@:所有的参数

$#:参数的个数

$$:当前进程的PID

$!:上一个后台进程的PID

$?:上一个命令的返回值,返回值为0,表示成功。

举例:预定义变更$?的使用

# pwd

/home/root

# echo $?

0

说明:执行pwd命令,然后使用echo $? 查看执行命令的状态返回值,返回值为0,表示上一个命令执行成功。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多