小壮学运维31--shell中的变量及在脚本中的调用

shell中的变量

一、变量的定义:变量即在程序运行过程中它的值时允许改变的量;

           变量是用一串固定的字符来表示不固定的值的一种方法;

           变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息;

           在shell中变量是不能永久保存在系统中的,必须在文件中声明。


二、在shell脚本中变量的种类

在shell中变量分为环境级变量、用户级变量、系统级变量;

环境级变量只在当前shell中生效,shell关闭变量消失;

用户级变量写在用户的主文件中,只针对当前用户失效;

系统级变量被写在系统的配置文件/etc/profile或/etc/profile.d/中,对所有用户都生效。

扫描二维码关注公众号,回复: 1821717 查看本文章


三、shell脚本中变量的定义方法

1、环境级变量,只在当前shell中生效,export WESTOS=1


2、用户级变量,只针对当前用户生效, 

vim ~/.bash_profile在文件里写入export WESTOS=1;

source重新载入文件(只能载入增加)



3、系统级变量,对所有用户都生效;

vim /etc/profile在配置文件里同样写入export WESTOS=1



4、如何实现让本来在/mnt下的脚本在任何环境下都可以直接执行

像上面ls在任何路径下都可以执行,这是因为ls的执行路径写在了配置文件里,$PATH可以查看;

下面我们将/mnt也加入主文件里,此时在当前用户,何种环境都可以执行/mnt下都脚本,不用写绝对路径




四、字符的转译

1、\转移一个字符



2、" "弱引用,批量转译“ ”中出现的字符;

  \  `    $(单独$可以转译,跟东西就不转译)  !  不能转译


3、${}变量声明


4、‘ ’强引用


5、``优先执行里面的内容,``与$()一样,但是区别是``不能连用




五、变量值传递

$1    脚本后的第一串字符

$2    脚本后的第二串字符

$3    脚本后的第三串字符

$#    脚本后所跟字符的个数

$*     脚本后的所有字符串(一个个体)

$@   脚本后的所有字符串(一个整体)


$*     脚本后的所有字符串(一个个体



$@   脚本后的所有字符串(一个整体




六、用read实现变量传递

-p表示显示
-s
表示加密



测试:

1)ping ip 通则显示up;不通显示down

c1表示连接一次

w1表示时间1s

&>/dev/null 输出扔掉



2)创建用户




七、Linux系统中命令别名的设定

1、alias 查看命令的别名

例如:ls其实=ls --color


测试:

下面我们将vim命令赋予别名xie;即输入xie即可进入vim编辑

1)临时设定 编辑 ~/.bashrc


source 载入即可在当前用户实现




2)永久设定,在/etc/bashrc里同样编辑如下


source载入可以alias查看


3)删除unalias命令



八、利用执行结果设定变量

$?表示命令执行完后的退出值,范围是[0~255];0表示没有错误的输出;具体每个数字代表的含义可以在网上查找


这个值可以用exit命令执行



九、脚本中的函数

脚本中函数是把一个负载的语句块定义成一串字符的方法

格式Create()

{

...

}

Create

举例如下:用户的创建函数

Create名字自定义

下面表示创建用户,当输入exit时退出,否则一直执行这个创建用户的函数脚本


猜你喜欢

转载自blog.csdn.net/hello_xiaozhuang/article/details/80779452