shell变量

目录

一、三个命令显示变量的值set env declare

二、自定义环境变量

①临时变量

方法一示例

方法二示例

方法三示例

②如果想连接新的会话之后有效需要写在配置文件中

#删除临时变量

a、仅root用户可以输出

b、所有用户都可以输出(root用户如果局部未设置可以输出)

三、设置登录提示

方法①vim /etc/motd

方法②可以在/etc/profile.d下写一个脚本

四、变量定义及变量输出

eg1示例

eg2示例

五、特殊变量

eg1示例

注: $# 显示为传入参数次数  

eg2示例

eg3 $0 获取脚本的名称及路径

eg4 $@ $* 示例


一、三个命令显示变量的值set env declare

set:输出所有的变量,包括全局变量和局部变量

env:显示全局变量

declare:输出所有的变量、函数、证书和已经导出的变量。

set -o:显示bash Shell 的所有参数配置信息。

二、自定义环境变量

变量名:一般由字母、数字、下划线组成,可以以下划线或者字母开头,例如:NAME、NAME123、NAME_123、_NAME123

①临时变量

方法一:
export 变量名=value

方法二:
变量名=value ; export 变量名

方法三:
declare -x 变量名=value

方法一示例

shell变量_第1张图片

方法二示例

shell变量_第2张图片

方法三示例

②如果想连接新的会话之后有效需要写在配置文件中

#删除临时变量

unset 变量名

[root@localhost day1]# WEIGHT=100
[root@localhost day1]# export WEIGHT
[root@localhost day1]# echo $WEIGHT
100
[root@localhost day1]# unset WEIGHT
[root@localhost day1]# echo $WEIGHT

shell变量_第3张图片

a、仅root用户可以输出

[root@localhost day1]# vim /root/.bashrc

shell变量_第4张图片

 切换终端且用户为root可以输出

shell变量_第5张图片

 切换终端且用户为xiaohong无法输出

shell变量_第6张图片

b、所有用户都可以输出(root用户如果局部未设置可以输出)

[root@localhost day1]# vim /etc/bashrc

shell变量_第7张图片

因为root设置了局部变量因此输出内容为 /root/.bashrc 中配置内容(局部优先)

shell变量_第8张图片

三、设置登录提示

方法①vim /etc/motd

方法②可以在/etc/profile.d下写一个脚本

[root@localhost ~]# vim /etc/profile.d/welcome.sh
[root@localhost ~]# cat /etc/profile.d/welcome.sh 
echo "welcome my server!"

shell变量_第9张图片

四、变量定义及变量输出

eg1示例

当echo 变量
或者
echo '变量'
或者
echo "变量"   此时变量没有命令执行,如:第二行输出

会原样输出

当 echo “变量 $(变量)”
或者
echo “变量 `date`” 此时有命令执行,如:第四行和第六行
会执行输出

shell变量_第10张图片

eg2示例

如果添加新的变量 HIGH

进行enco

因为 $变量 会执行
因此当不带引号或者带上双引号时会输出执行后结果
如果是单引号'' 
echo '$HIGH'
返回之后原样输出

shell变量_第11张图片

五、特殊变量

eg1示例

[root@localhost day1]# pwd
/scripts/day1

[root@localhost day1]# vim test3.sh
#!/bin/bash
echo "这是第一个变量 $1"
echo "这是第二个变量 $2"
echo "这是第三个变量 $3"
echo "这是第四个变量 $4"
echo "这是第五个变量 $5"

echo "一共有 $# 个变量"

shell变量_第12张图片

注: $# 显示为传入参数次数  

shell变量_第13张图片

eg2示例

[root@localhost day1]# vim test4.sh

echo $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15}

由输出可以看出 $1X 中, 1X 如果不括起来,结果为 $1的值后再跟上x

如下 $1 为a====>$10 为 a0====>${10} 为 j

shell变量_第14张图片

eg3 $0 获取脚本的名称及路径

[root@localhost day1]# vim test5.sh

echo "$0"
echo "`basename $0`"  
#返回脚本名称
echo "`dirname $0`"
#返回脚本路径

当echo "$0"时

①如果sh 后面跟了正确路径则会返回路径和脚本名称

②如果sh后面仅跟脚本名则返回脚本名称

shell变量_第15张图片

eg4 $@ $* 示例

[root@localhost day1]# set a b c
[root@localhost day1]# echo $#
3

$*会作为一个整体输出

$@会一个一个输出

shell变量_第16张图片

你可能感兴趣的:(#,linux,运维,shell,变量,centos7/rhel7)