标签:ted regex 登录 user 常用设置 字符 初始化 注意事项 永久
如果想要设置环境变量,就要在给变量赋值之后或在设置变量时使用export命令,具体设置见下文的示例。其实,除了export命令,带-x选项的declare内置命令也可以完成同样的功能(注意:此处不要在变量名前面加$)。
export命令和declare命令的格式如下:
1.export 变量名=value
2.变量名=value;export 变量名
3.declare -x 变量名=value
export NAME=oldboy
declare -x NAME=oldboy
NAME=oldboy;export
------------------------------------
[root@zabbix ~]# tail -1 /etc/profile
export OLDBOY=‘oldboy‘
[root@zabbix ~]# source /etc/profile
[root@zabbix ~]# echo $OLDBOY
oldboy
[root@zabbix ~]# env|grep OLDBOY
OLDBOY=oldboy
对于用户的环境变量设置,比较常见的是用户家目录下的.bashrc和.bash_profile。
[root@zabbix ~]# ll /root/.bashrc -- 推荐使用
-rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bashrc
[root@zabbix ~]# ll /root/.bash_profile
-rw-r--r--. 1 root root 176 Dec 29 2013 /root/.bash_profile
/etc/profile
/etc/bashrc -- 推荐使用
/etc/profile.d/
## 若要在登录后初始化或显示加载内容,则把脚本文件放在/etc/profile.d/下即可(无须加执行权限)。
(3)设置登录提示的两种方式
[root@zabbix ~]# cat /etc/motd
welcome to moox linux shell training.
[root@zabbix ~]# cat /etc/profile.d/moox.sh
echo "Here is moox shell training."
[root@zabbix ~]# echo $SHELL
/bin/bash
[root@zabbix ~]# printf "$SHELL"
/bin/bash[root@zabbix ~]#
[root@zabbix ~]#printf "$SHELL\n"
/bin/bash
[root@zabbix ~]# echo $OLDBOY
oldboy
[root@zabbix ~]# unset OLDBOY
[root@zabbix ~]# echo $OLDBOY
[root@zabbix ~]#
1.用户登录系统后首先会加载`/etc/profile`全局环境变量文件
2.当加载完/etc/profile文件后,才会执行`/etc/profile.d`目录下的脚本文件
3.之后开始运行`$HOME/.bash_profile`
4.在$HOME/.bash_profile这个文件中,又会去找`$HOME/.bashrc`
5.在$HOME/.bashrc文件中又会去找`/etc/bashrc`
变量名=value
变量名=‘value‘
变量名="value"
变量名一般是由字母、数字、下划线组成的,可以以字母或下划线开头.如:moox、moox123、moox_shell
a=192.168.1.1
b=‘192.168.1.1‘
c="192.168.1.1"
echo "a=$a"
echo "b=$b"
echo "c1=${c},c2=$c"
# $变量名表示输出变量,可以用$c和${c}两种用法
a=192.168.1.1-$a
b=‘192.168.1.1-$a‘
c="192.168.1.1-$a"
echo "a=$a"
echo "b=$b"
echo "c1=${c}"
总结:>
数字内容的变量定义可以不加引号,
其他没有特别要求的字符串等定义最好都加上双引号,
如果真的需要原样输出就加单引号,
定义变量加双引号是最常见的使用场景.
反引号``和$()方法
[root@zabbix ~]# moox=`pwd`
[root@zabbix ~]# echo $moox
/root
[root@zabbix ~]# moox1=$(pwd)
[root@zabbix ~]# echo $moox1
/root
要求: 按天打包网站的站点目录程序,生成不同的文件名(此为企业实战案例)。
tar zcvf scripts_$(date +%F).tar.gz /server/scripts/
ls
;或者用\(()括起来,例如:a=\)(ls)。变量的输出方法如下:ls
”。[root@zabbix ~]# ETT=123
[root@zabbix ~]# awk ‘BEGIN {print $ETT}‘ -- 无输出结果
[root@zabbix ~]# awk ‘BEGIN {print "$ETT"}‘ -- 输出原变量
$ETT
[root@zabbix ~]# awk ‘BEGIN {print ‘$ETT‘}‘ -- 输出正确值
123
[root@zabbix ~]# awk ‘BEGIN {print "‘$ETT‘"}‘ -- 输出正确值
123
[root@zabbix ~]#
[root@zabbix ~]# ETT=`pwd`
[root@zabbix ~]# awk ‘BEGIN {print $ETT}‘
[root@zabbix ~]# awk ‘BEGIN {print "$ETT"}‘
$ETT
[root@zabbix ~]# awk ‘BEGIN {print ‘$ETT‘}‘ --- 报错
awk: cmd. line:1: BEGIN {print /root}
awk: cmd. line:1: ^ unterminated regexp
awk: cmd. line:1: BEGIN {print /root}
awk: cmd. line:1: ^ unexpected newline or end of string
[root@zabbix ~]# awk ‘BEGIN {print "‘$ETT‘"}‘ --- 正常输出
/root
awk \ ETT | ETT=123 | ETT=‘oldgirl‘ | ETT="tingting" | ETT=pwd反引号 |
---|---|---|---|---|
awk ‘BEGIN {print "$ETT"}‘ -- 加双引号 | 输出本身 | 输出本身 | 输出本身 | 输出本身 |
awk ‘BEGIN {print $ETT}‘ -- 不加引号 | 空 | 空 | 空 | 空 |
awk ‘BEGIN {print ‘$ETT‘}‘ -- 加单引号 | 正确输出 | 空 | 空 | 语法错 |
awk ‘BEGIN {print " ‘$ETT‘ "}‘ -- 加双引号 | 正确输出 | 正确输出 | 正确输出 | 正确输出 |
结论:
awk 与一般情况恰好相反,不管变量如何定义、赋值,除了加单引号以外,利用awk直接获取变量的输出,结果都是一样的,因此,在awk取用Shell变量时,我们更多地还是喜欢先用echo加符号输出变量,然后通过管道给awk,进而控制变量的输出结果。这就符合前面给出的普通情况的结论了
ETT="oldgirl"或ETT=‘oldgirl‘ 或 ETT=oldgirl 或 ETT=`pwd`
echo $ETT|awk ‘{print $0}‘
关于自定义普通字符串变量的建议
OldboyAge=33
NETWORKING=yes
NFSD_MODULE="no load"
MyName="Oldboy is a handsome boy."
OLABOY_NAME=‘OLDBOY‘
标签:ted regex 登录 user 常用设置 字符 初始化 注意事项 永久
原文地址:https://www.cnblogs.com/moox/p/12822854.html