shell 中的变量

变量的定义

(1)变量即在程序运行过程中它的值是允许改变的量
(2)变量是用一串固定的字符来标示不固定的值的一种方法
(3)变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息
(4)在 shell 中变量是不能永久保存在系统中的,必须在文件中声明

在 shell 脚本中变量的种类

(1)环境级变量:只在当前 shell 中生效, shell 关闭变量丢失

a=1   ###给a赋值为1
vim test.sh   ###编写脚本,执行后显示a的值
sh test.sh    ###发现看不到结果(因为脚本执行时,打开的是另一个shell不在同一环境)
export a=1     ###声明变量
sh test.sh   ####结果出现

这里写图片描述
(2)用户级变量:用户级变量写在用户的骨文件中,只针对当前用户生效

vim .bash_profile   ###编辑用户骨文件
写入:export a=1
source .bash_profile   ###重新加载信息
echo $a     ###显示a的值

注意:切换用户后,就显示不了
这里写图片描述
这里写图片描述
编辑用户骨文件后就可以看见
这里写图片描述
(3)系统级变量:系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效

vim  /etc/profile   ###编辑系统配置文件
写入:export a=2   
source  /etc/profile  ###重新加载信息
echo $a      ###显示a的值
su - student   ###切换到student用户
echo $a    ###查看a的值依然可以

这里写图片描述
这里写图片描述

变量名称的规范

变量名称中通常包含大小写字字母,数字,下划线(不是必须)
变量名称格式
WESTOS_LINUX
Westos_Linux
westoS_Linux
这里写图片描述
这里写图片描述

字符的转译及变量的声明

\ 转译单个字符
这里写图片描述
” ” (双引号) 弱引用,批量转译 “” 中出现的字符
’ ’ (单引号) 强引用,批量转译 ” 中出现的字符
’ ’ 与 ” ” 两者的区别在于, “” 不能转译 “\”,”`”,”!”,”$”
这里写图片描述
这里写图片描述
${} 变量声明
这里写图片描述
这里写图片描述

变量值传递

写一个脚本验证:
这里写图片描述

$1     脚本后的第一串字符串

这里写图片描述

$2     脚本后的第二串字符串

这里写图片描述

$3     脚本后的第三串字符串

这里写图片描述

$#     脚本后所跟字符串的个数
$*      脚本后跟的所有字符串,模式为“ 1 2 3

这里写图片描述

$@   脚本后跟的所有字符串,模式为“ 1”“2”“3

这里写图片描述
这里写图片描述

用 read 实现变量传递

read      WESTOS   
read -s    WESTOS    ####-s,对输入的交互信息进行加密  
read -p   "input: "  WESTOS   ####-p,表示输入交互的内容

这里写图片描述
这里写图片描述

linux 系统中命令别名的设定

alias   ###查看系统中命令别名
alias xie='vim'   ###添加命令别名(临时的)
xie

这里写图片描述
注意:它是临时的,断开再重新连接虚拟机后会不起作用
这里写图片描述

vim .bashrc   ###写进配置文件
alias 
source .bashrc  ###重新加载配置
alias 

这里写图片描述
这里写图片描述

su - student   ###
alias        ###没有添加上
vim /etc/bashrc   ###写进主配置文件
source /etc/bashrc 
alias 
su - student
xie   ###此命令别名就可以生效

这里写图片描述
这里写图片描述

2.删除你添加的别名
vim /etc/bashrc 
####删除之前写进文件的东西
vim .bashrc 
source /etc/bashrc 
source .bashrc   ###重新加载
alias   ###查看还在
unalias xie  ###去掉xie这个命令别名
alias 

这里写图片描述

利用命令执行结果设定变量

Hostname=$(hostname)   ,表示优先执行
Hostname= `hostname` ,表示优先执行
$?
(1)$? 是命令在执行完成之后产生的退出值
范围是 [0-255]

这里写图片描述

(2)当 $0=0 时标示命令执行没有错误输出
这个值可以用 exit 命令执行

这里写图片描述
(3)更改脚本中exit 1 ,为exit 66 退出值就会改变
这里写图片描述

脚本中的函数

脚本中的函数时把一个复杂的语句块定义成一个字符串的方法

写一个脚本,没输入ip提示输入,输入ip判断此ip的主机是否开启,直到输入exit,结束
#!/bin/bash
PING()
{
         read -p "please input a ipaddress: " IP
         [ "$IP" = exit ] &&{
                 echo bye
                 exit 0
         }
         ping -c1 -w1 $IP &> /dev/null && echo $IP is up || echo $IP is down
         PING
}
PING   

这里写图片描述
这里写图片描述
.

猜你喜欢

转载自blog.csdn.net/xbw_linux123/article/details/80765112