Shell基础——Bash变量

本章讲解了bash变量包括用户自定义变量、环境变量、位置参数变量、预定义变量和read接收键盘输入的方法

一、用户自定义变量

echo查看单个变量

[root@localhost /]# name=123   直接定义变量即可

[root@localhost /]# echo $name

123

[root@localhost /]# name="$name"456

[root@localhost /]# echo $name    

123456

set查看所有变量

set     查看所有变量

unset  变量名      删除某个变量

 

 

二、环境变量

主要保存和系统环境相关的数据,一般修改已有变量数值,也可增加变量,不光在当前shell生效,子shell也生效

[root@localhost /]# export age=18      定义环境变量 

[root@localhost /]# env              查看所有环境变量

[root@localhost /]# unset age         删除变量通用

 

*具体子shell什么意思呢?

[root@localhost /]# bash            在当前shell中进入一个新shell叫做子sehll

[root@localhost /]# pstree           查看目录树

init─┬─anacron

     ├─auditd───{auditd}

     ├─crond

     ├─rsyslogd───3*[{rsyslogd}]

     ├─sshd───sshd───bash───bash───pstree

       通过crt的ssh方式连接      登入系统默认的shell   刚才手动创建的子shell

三、位置参数变量

主要想脚本传输参数或数据,变量名不能自定义,变量作用固定,其实属于预定义变量

 

$n示例

[root@localhost sh]# vi weizhicanshu1.sh   

#!/bin/bash

sum=$(( $1+$2 ))

echo "sum is : $sum"

[root@localhost sh]# chmod 755 weizhicanshu1.sh

[root@localhost sh]# ./weizhicanshu1.sh 5 6     

sum is : 11

$*和$@示例

[root@localhost sh]# cat weizhicanshu2.sh

#!/bin/bash

for i in "$*"

        do

                echo "$i"   所有参数看作整体循环一次

        done

echo ------

for j in "$@"

        do

                echo "$j"  所有参数区分对待循环

      done

[root@localhost sh]# ./weizhicanshu2.sh 1 2 3

1 2 3

------

1

2

3

四、预定义变量

bash中已经定义好的,变量名和作用固定

主要使用$?

[root@localhost sh]# ls

weizhicanshu1.sh  weizhicanshu2.sh

[root@localhost sh]# echo $?

0              正确执行输出0

[root@localhost sh]# lss

bash: lss: command not found

[root@localhost sh]# echo $?

127           报错输出错误代码

 

五、read接收键盘输入

[root@localhost sh]# cat read.sh

#!/bin/bash

read -t 30 -p "input your name: " name

echo "$name"

read -t 30 -s -p "input your age: " age

#-s保护年龄隐私

echo -e

echo "$age"

read -t 30 -n 1 -p "select your sex[m/w]: " sex

#使用-n 1只接收一个字符直接返回不用回车

echo -e 

echo "$sex"

[root@localhost sh]# chmod 755 read.sh         

[root@localhost sh]# ./read.sh         

input your name: haha

haha

input your age:

18

select your sex[m/w]: m

m

猜你喜欢

转载自blog.csdn.net/weixin_39855998/article/details/81163988