《shell编程实战》第3章shell变量基础(下)

本文介绍了在Linux系统中设置登录提示信息的两种方法,并详细对比了单引号、双引号及无引号在Shell脚本中变量引用的不同表现形式。此外,还特别解析了在awk命令中引用变量时的特殊情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、设置登录提示的两种方法
(1)/etc/motd
[root@thzzc1994 thzzc]# echo this is thzzc test linux >/etc/motd
[root@thzzc1994 thzzc]# cat /etc/motd
this is thzzc test linux
(2)/etc/profile.d
[root@thzzc1994 home]# echo echo this is thzzc test linux >/etc/profile.d/test.sh
[root@thzzc1994 home]# cat /etc/profile.d/test.sh
echo this is thzzc test linux
2、单引号、双引号、不加引号的区别示例
(1)[root@thzzc1994 ~]# cat test.sh
a=192.168.1.1
b='192.168.1.1'
c="192.168.1.1"
echo a=$a
echo b=$b
echo c=$c
[root@thzzc1994 ~]# sh test.sh
a=192.168.1.1
b=192.168.1.1
c=192.168.1.1
(2)[root@thzzc1994 ~]# cat test.sh
a=192.168.1.1
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 c=$c
[root@thzzc1994 ~]# sh test.sh
a=192.168.1.1-192.168.1.1
b=192.168.1.1-$a
c=192.168.1.1-192.168.1.1-192.168.1.1
3、awk的单引号、双引号反常情况
[root@thzzc1994 ~]# oldboy=123
[root@thzzc1994 ~]# awk 'BEGIN {print "$oldboy"}'
$oldboy
[root@thzzc1994 ~]# awk 'BEGIN {print $oldboy}'

[root@thzzc1994 ~]# awk 'BEGIN {print '$oldboy'}'
123
[root@thzzc1994 ~]# awk 'BEGIN {print "'$oldboy'"}'
123
使用awk时,情况刚好相反,单引号、双+单解析变量,双引号原样输出。什么都不加输出为空。
总结:若想原样输出就用双引号,解析变量就用双+单('xxx'")
老男孩为了方便,一般都不直接用awk了,而是采用管道的方法,先echo变量再让管道通过$0传参。
[root@thzzc1994 ~]# oldboy=123
[root@thzzc1994 ~]# echo $oldboy |awk '{print $0}'
123
[root@thzzc1994 ~]# echo '$oldboy' |awk '{print $0}'
$oldboy
[root@thzzc1994 ~]# echo "$oldboy" |awk '{print $0}'
123
sed和grep都和之前的结论是符合的,就awk古怪些。awk真的是一门语言啊!

转载于:https://blog.51cto.com/10249069/2113222

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值