目录
b、所有用户都可以输出(root用户如果局部未设置可以输出)
一、三个命令显示变量的值set env declare
set:输出所有的变量,包括全局变量和局部变量
env:显示全局变量
declare:输出所有的变量、函数、证书和已经导出的变量。
set -o:显示bash Shell 的所有参数配置信息。
二、自定义环境变量
变量名:一般由字母、数字、下划线组成,可以以下划线或者字母开头,例如:NAME、NAME123、NAME_123、_NAME123
①临时变量
方法一:
export 变量名=value
方法二:
变量名=value ; export 变量名
方法三:
declare -x 变量名=value
方法一示例
方法二示例
方法三示例
②如果想连接新的会话之后有效需要写在配置文件中
#删除临时变量
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
a、仅root用户可以输出
[root@localhost day1]# vim /root/.bashrc
切换终端且用户为root可以输出
切换终端且用户为xiaohong无法输出
b、所有用户都可以输出(root用户如果局部未设置可以输出)
[root@localhost day1]# vim /etc/bashrc
因为root设置了局部变量因此输出内容为 /root/.bashrc 中配置内容(局部优先)
三、设置登录提示
方法①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!"
四、变量定义及变量输出
eg1示例
当echo 变量
或者
echo '变量'
或者
echo "变量" 此时变量没有命令执行,如:第二行输出
会原样输出
当 echo “变量 $(变量)”
或者
echo “变量 `date`” 此时有命令执行,如:第四行和第六行
会执行输出
eg2示例
如果添加新的变量 HIGH
进行enco
因为 $变量 会执行
因此当不带引号或者带上双引号时会输出执行后结果
如果是单引号''
echo '$HIGH'
返回之后原样输出
五、特殊变量
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 "一共有 $# 个变量"
注: $# 显示为传入参数次数
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
eg3 $0 获取脚本的名称及路径
[root@localhost day1]# vim test5.sh
echo "$0"
echo "`basename $0`"
#返回脚本名称
echo "`dirname $0`"
#返回脚本路径
当echo "$0"时
①如果sh 后面跟了正确路径则会返回路径和脚本名称
②如果sh后面仅跟脚本名则返回脚本名称
eg4 $@ $* 示例
[root@localhost day1]# set a b c
[root@localhost day1]# echo $#
3
$*会作为一个整体输出
$@会一个一个输出