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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《shell编程实战》第3章shell变量基础(下)相关的知识,希望对你有一定的参考价值。

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

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

以上是关于《shell编程实战》第3章shell变量基础(下)的主要内容,如果未能解决你的问题,请参考以下文章

《shell编程实战》第4章shell变量进阶(上)

《shell编程实战》第2章shell脚本入门(下)

《shell编程实战》第2章shell脚本入门

第9章 Shell基础_Bash基本功能

提供跟老男孩学Linux运维Shell编程实战的第第五章源代码

Shell最最基础教程案例讲解值得收藏系列