谈一谈Linux中Shell编程的转义和引用
shell中的两类字符
(1)、普通字符:
Shell中除了本身的字面意思外没有其他特殊意义。
(2)、元字符:
Shell的保留字符,在Shell中有着特殊意义的专用字符。
1、转义
指使用转义符引用单个字符,从而使其表达单纯的字符的字面含义。
Shell中的转义符是反斜杠””,使用转义符的目的是使转义符后面的字符单纯地作为字符出现,而不解释其特殊的含义。
案例1:
[root@localhost odysee]# name=odysee
[root@localhost odysee]# echo ${name}
odysee
[root@localhost odysee]# echo ${name}
${name}
解释:
echo ${name}:
“$”作为一个特殊的字符,Shell解释为”取出并打印name变量的值”。
echo ${name}:
这里”$”使”$”失去了特殊的含义,只作为一个符号出现。
案例2:
*:
一般作为的通配符使用。
例如:
查找odysee 的sh结尾的所有文件
find ~odysee/ -name “*.sh”
我现在需要它作为一个普通的*
例如:
echo 9*9 = 81
这里就作为一个普通的字符来使用
2、 引用
指字符串用某种符号括起来,以防止特殊字符被解析为其他意思。
Shell中的4种引用符
“”[双引号]:
又叫”部分引用”或”弱引用”,可以引用出除$、“、之外的所有字符。
即:$、反引号(`)、转义符()特殊字符依然会被解析为特殊意义。
”[单引号]:
又叫”全引用”或”强引用”,可以引用所有字符。
即:所有的特殊字符都不会被shell解释。
“[反引号]:
将反引号括起来的内容解释为系统命令。
也是命令替换的一种,将命令的标准输出作为值赋给某个变量。
最后有补充。
[转义符]:
转义符引用单个字符,从而使其表达单纯的字符的字面含义。
案例1:
测试双引号
[root@localhost home]# num=9527
[root@localhost home]# echo “${num}”
9527
[root@localhost home]# echo “${num}”
${num}
[root@localhost home]# echo “`ls`”
odysee
stephen
userShell
比较简单,就解释一下echo “`ls`”
echo “`ls`”:
“”内的“依然表示特殊的含义,提取ls命令执行后的结果shell转义字符,然后在echo出来。
案例2:
测试单引号
[root@localhost home]# count=9527
[root@localhost home]# echo ‘${count}’
${count}
[root@localhost home]# echo ‘${count}’
${count}
单引号里面的所有的特殊字符都不会被shell解释。
案例3:
测试反引号
[root@localhost home]# echo `ls ~/`
anaconda-ks.cfg Desktop Documents Downloads General Music original-ks.cfg Pictures Public Templates Videos
[root@localhost home]#
提取ls ~命令执行后的结果,然后在echo出来。
3、 命令替换
指将命令的标准输出作为值赋给某个变量shell转义字符,Shell编程中使用比较频繁。
例如:
count=`ls ~/`或者count=$(ls ~/)
将ls ~/执行的结果赋值给count变量。
命令替换的两种方式:
(1)、反引号
(2)、$()
案例:
[root@localhost home]# count=`ls ~/`
[root@localhost home]# echo ${count}
anaconda-ks.cfg Desktop Documents Downloads General Music original-ks.cfg Pictures Public Templates Videos
[root@localhost home]# num=$(ls ~/)
[root@localhost home]# echo ${num}
anaconda-ks.cfg Desktop Documents Downloads General Music original-ks.cfg Pictures Public Templates Videos
[root@localhost home]#
这两者执行的结果是相同的
测试完成。
欢迎大家给予宝贵的意见或者建议。
欢迎大家补充或者共享一些其他的方法。
感谢支持。
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,加站长微信免费获取积分,会员只需38元,全站资源免费下载 点击查看详情
站 长 微 信: thumbxmw