当前位置: 首页 > news >正文

益阳网站建设方案wordpress导航链接

益阳网站建设方案,wordpress导航链接,什么是网络营销中最容易出现问题的步骤,北京商场有哪些地方bash引用-Quoting详细介绍 概述 引用的字面意思就是#xff0c;用引号括住一个字符串。这可以保护字符串中的特殊字符不被shell或shell脚本重新解释或扩展。(如果一个字有不同于其字面意思的解释#xff0c;它就是“特殊的”。例如#xff1a;星号*除了本身代表*号以外还表… bash引用-Quoting详细介绍 概述 引用的字面意思就是用引号括住一个字符串。这可以保护字符串中的特殊字符不被shell或shell脚本重新解释或扩展。(如果一个字有不同于其字面意思的解释它就是“特殊的”。例如星号*除了本身代表*号以外还表示文件通配和正则表达式中的通配符)。 [rootcentos8 ~]$ ls -l P* Pictures: total 0 Public: total 0 [rootcentos8 ~]$ ls -l P* ls: cannot access P*: No such file or directory在生活中用语或者书写当我们使用双引号引用一个句子时我们会区别对待该句子并赋予其特殊意义在Bash脚本中当我们使用双引号string引用一个字符串时我们同样区别对待并保护其字面意思一般性的意思。 在涉及到命令替换时引用可以让echo输出带格式的命令结果,保留变量所带的空白符号。 bash$ echo $(ls -l) # 无引号命令替换 total 8 -rw-rw-r-- 1 bo bo 13 Aug 21 12:57 t.sh -rw-rw-r-- 1 bo bo 78 Aug 21 12:57 u.sh bash$ echo $(ls -l) # 被引用的命令替换 total 8-rw-rw-r-- 1 bo bo 13 Aug 21 12:57 t.sh-rw-rw-r-- 1 bo bo 78 Aug 21 12:57 u.sh5.1. 引用变量(Quoting Variables) 当我们引用一个变量时比较建议的做法是使用双引号将其引用起来。这样做可以避免bash再次解析双引号中的特殊字符只不过$、反引号、和反斜杠\仍然会被bash解析。在双引号中的$符号仍然被视为特殊字符这样做的好处是可以进行变量替换(“$variable”),也就是使用变量的值替换掉变量名。 使用双引号的另一个用途是防止单词分割。在双引号中的参数表现为单个词语(即使其包含空白字符)。 Listone two three for a in $List # 使用空格符作为分隔符分割变量的值(字符串). doecho $a done # 输出 # one # two # three echo --- for a in $List # Preserves whitespace in a single variable. do # ^ ^echo $a done # 输出 # one two three下面是一个更加精心设计的例子 variable1a variable containing five words COMMAND This is $variable1 # 执行COMMAND命令时会被认为带了7个参数如下: # This is a variable containing five words COMMAND This is $variable1 # # 执行COMMAND命令时会被认为带了1个参数如下: # This is a variable containing five words variable2 # 空变量. COMMAND $variable2 $variable2 $variable2# COMMAND命令没带参数执行. COMMAND $variable2 $variable2 $variable2# 带了三个空参数执行COMMAND命令. COMMAND $variable2 $variable2 $variable2# COMMAND命令带一个参数执行(该参数为2个空格). # 谢谢这个大佬指出:Stéphane Chazelas.使用echo给标准输出打印奇怪的字符 例 5-1. echo输出奇怪的变量 #!/bin/bash # weirdvars.sh: Echoing weird variables. echo var(]\\{}\$\ echo $var # (]\{}$ echo $var # (]\{}$ 结果相同. echo IFS\ echo $var # (] {}$ \ 变为了空格为什么?(IFS为内部域分割符临时使用\作为分隔符) echo $var # (]\{}$ # 以上例子来自Stephane Chazelas. echo var2\\\\\ echo $var2 # echo $var2 # \\ echo # 但是 ... var2\\\\ 是非法的此处四个\位置2,4的两个刚好被转义而剩余3个符所以不行 var3\\\\ echo $var3 # \\\\ # 但是强引用可以. # ************************************************************ # # 变量嵌套替换也可以 echo $(echo ) # # ^ ^ # 某些情况下嵌套很有用 var1Two bits echo \$var1 $var1 # $var1 Two bits # ^ ^ # Or, as Chris Hiestand points out ... if [[ $(du $My_File1) -gt $(du $My_File2) ]] # ^ ^ ^ ^ ^ ^ ^ ^ then... fi # ************************************************************ #单引号(’ )的工作机制类似于双引号但是在单括号中不允许变量替换因为$符的特殊意义被关闭了。在单引号中任何特殊的符号都按照字面意思解释(除了’单引号自身)。 由于转义符(逃逸符)在单引号中都失去了转义的意义所以试图在单引号中括单引号是不行的下面的例子可以实现输出单引号。 echo Why cant I write s between single quotes echo # The roundabout method. echo Why can\t I write s between single quotes # |-------| |----------| |-----------------------| # 上面使用了三个单引号组一个转义的单引号和一个双引号引起的单引号.5.2. 转义/逃逸(Escaping) 转义是一种用来引用单个字符的方法。在字符前的反斜杠\告诉shell以字面意思解析该字符。 注意在echo或者sed这些程序命令中转义某个字符可能有相反的作用可以触发某种特殊意义。 特定的被转义的字符所具有的意义如下: used with echo and sed \n 新行(means newline) \r 回车(means return) \t tab键 \v 垂直tab键(means vertical tab) \b 退格(means backspace) \a 报警(means alert (beep or flash)) \0xx 将反斜杠后的数字视为八进制的ASCII码值$’ … ’ :该符号结构的机制是使用转义的八进制或者十六进制值将ASCII码赋给变量例如quote$‘\042’. 例5-2. 被转义的字符(Escaped Characters) #!/bin/bash # escaped.sh: escaped characters ############################################################# ### First, lets show some basic escaped-character usage. ### ############################################################# # Escaping a newline. # ------------------ echo echo This will print as two lines. # 上面的写法将会打印两行 echo This will print \ as one line. # 上面的写法将会打印一行 echo; echo echo echo \v\v\v\v # 按照字面意思打印 \v\v\v\v . # 使用 -e 选项 打印转义字符所代表的字符 echo echo VERTICAL TABS # 垂直tab键 echo -e \v\v\v\v # 此时将会打印四个垂直tab echo echo QUOTATION MARK echo -e \042 # 打印一个双引号 (quote, 八进制的 ASCII 值:42;代表一个双引号). echo # 使用该结构 $\X 使得-e选项不在需要 echo; echo NEWLINE and (maybe) BEEP echo $\n # 新行. echo $\a # 警告音(beep).# May only flash, not beep, depending on terminal. # We have seen $\nnn string expansion, and now . . . # # # $\nnn 该种字符串展开的机制在bash2.0中引进 # # echo Introducing the \$\ ... \ string-expansion construct . . . echo . . . featuring more quotation marks. echo $\t \042 \t # 打印左右两边分别有个tab键的双引号(). # \nnn 为八进制数. echo # 将一个ASCII字符赋值给一个变量 # ---------------------------------------- quote$\042 # 赋值给一个变量 echo $quote Quoted string $quote and this lies outside the quotes. echo # Concatenating ASCII chars in a variable. triple_underline$\137\137\137 # 137 是八进制的ASCII值代表_. echo $triple_underline UNDERLINE $triple_underline echo ABC$\101\102\103\010 # 101, 102, 103 分别代表 A, B, C. echo $ABC echo escape$\033 # 033 是escape的八进制表示. echo \escape\ echoes as $escape # 并无可视化的输出. echo exit 0一个更加精心设计的例子 例5-3. 检测按键(Detecting key-presses) #!/bin/bash # Author: Sigurd Solaas, 20 Apr 2011 # Used in ABS Guide with permission. # Requires version 4.2 of Bash. keyno value yet while true; doclearecho Bash Extra Keys Demo. Keys to try:#Bash 识别按键的demo.可以识别一下按键:echoecho * Insert, Delete, Home, End, Page_Up and Page_Downecho * The four arrow keys#四个方向键echo * Tab, enter, escape, and space key#tab,回车返回空格键echo * The letter and number keys, etc.#标点按键echoecho d show date/timeecho q quitecho echo# Convert the separate home-key to home-key_num_7:if [ $key $\x1b\x4f\x48 ]; thenkey$\x1b\x5b\x31\x7e# Quoted string-expansion construct. fi# Convert the separate end-key to end-key_num_1.if [ $key $\x1b\x4f\x46 ]; thenkey$\x1b\x5b\x34\x7eficase $key in$\x1b\x5b\x32\x7e) # Insertecho Insert Key;;$\x1b\x5b\x33\x7e) # Deleteecho Delete Key;;$\x1b\x5b\x31\x7e) # Home_key_num_7echo Home Key;;$\x1b\x5b\x34\x7e) # End_key_num_1echo End Key;;$\x1b\x5b\x35\x7e) # Page_Upecho Page_Up;;$\x1b\x5b\x36\x7e) # Page_Downecho Page_Down;;$\x1b\x5b\x41) # Up_arrowecho Up arrow;;$\x1b\x5b\x42) # Down_arrowecho Down arrow;;$\x1b\x5b\x43) # Right_arrowecho Right arrow;;$\x1b\x5b\x44) # Left_arrowecho Left arrow;;$\x09) # Tabecho Tab Key;;$\x0a) # Enterecho Enter Key;;$\x1b) # Escapeecho Escape Key;;$\x20) # Spaceecho Space Key;;d)date;;q)echo Time to quit...echoexit 0;;*)echo You pressed: \$key\;;esacechoecho unset K1 K2 K3read -s -N1 -p Press a key: K1$REPLYread -s -N2 -t 0.001K2$REPLYread -s -N1 -t 0.001K3$REPLYkey$K1$K2$K3 done exit $?\ 还原双引号的字面意思(就是双引号不在用于引用) echo Hello # Hello echo \Hello\ ... he said. # Hello ... he said.$ 还原$符的字面意思意思是在$后的变量不会被替换 echo \$variable01 # $variable01 echo The book cost \$7.98. # The book cost $7.98.\\ 还原\的字面意思 echo \\ # Results in \ # Whereas . . . echo \ # Invokes secondary prompt from the command-line.# In a script, gives an error message. # However . . . echo \ # Results in \反斜杠\在不同的情况下表现出不一样的行为(是否被转义是否位于强引用中是否在弱引用中是否在命令替换中是否在“here document”) # 简单的转义和引用 echo \z # z echo \\z # \z echo \z # \z echo \\z # \\z echo \z # \z echo \\z # \z# 命令替换 echo ècho \z # z echo ècho \\z # z echo ècho \\\z # \z echo ècho \\\\z # \z echo ècho \\\\\\z # \z echo ècho \\\\\\\z # \\z echo ècho \z # \z echo ècho \\z # \z# 此处文本(Here document) cat EOF \z EOF # \z cat EOF \\z EOF # \z # These examples supplied by Stéphane Chazelas.赋给某个变量的字符串中的某些元素可能会被(能够被)转义但是单个被转义的字符不一定可以赋给变量。 variable\ echo $variable # 不可行打印一个错误提示: # test.sh: : command not found # 单独一个转义字符不可赋给变量 # # 事实上此处转义字符 \ 转义了新行在编写比较长的命令时就可以使用一个转义符来将命令写成多行 # 真正的行为是 variableecho $variable # 把命令赋值给变量是不允许的 variable\ 23skidoo echo $variable # 23skidoo# 可行因为第二行是合法的变量且实际上第二行被转义成了第一。 variable\ # \^ 转义符后跟一个空格 echo $variable # 输出空格 variable\\ echo $variable # \ variable\\\ echo $variable # 行不通出错 # test.sh: \: command not found # # 上面三个转义符中第一个转义可第二个但是第三个转义符还在类似于第一个例子。 variable\\\\ echo $variable # \\# Second and fourth escapes escaped.# This is o.k. 转义空格可以防止命令的参数列表发生词语分割。Escaping a space can prevent word splitting in a command’s argument list. file_list/bin/cat /bin/gzip /bin/more /usr/bin/less /usr/bin/emacs-20.7 # List of files as argument(s) to a command.# Add two files to the list, and list all. ls -l /usr/X11R6/bin/xsetroot /sbin/dump $file_list echo ------------------------------------------------------------------------- # What happens if we escape a couple of spaces? ls -l /usr/X11R6/bin/xsetroot\ /sbin/dump\ $file_list 输出 ################################ [rootcentos8 ~]#ls -l /usr/X11R6/bin/xsetroot\ /sbin/dump\ $file_list ls: cannot access /usr/X11R6/bin/xsetroot /sbin/dump /bin/cat: No such file or directory ################################ # Error: the first three files concatenated into a single argument to ls -l # because the two escaped spaces prevent argument (word) splitting.转义也有等待多行命令的意思。一般的不同的行会是不同的命令但是行末的转义字符转义了新行的字符命令可以一直写到下一行。 (cd /source/directory tar cf - . ) | \ (cd /dest/directory tar xpvf -) # 该命令为Alan Cox写的拷贝命令作两行写增加了易读性。 # 下面的命令同样功能: tar cf - -C /source/directory . | tar xpvf - -C /dest/directory # See note below. # (Thanks, Stéphane Chazelas.)如果脚本行结束跟一个|,一个管道符号那么转义字符\就不是那么严格的需要了。但是后面跟上转义字符是比较好的习惯。 echo foo bar ##两行 #foo #bar echo echo foo bar # 仍然是两行 #foo #bar echo echo foo\ bar # 换行符被转义输出一行. #foobar echo echo foo\ bar # 同样是一行转义字符在弱引用中(\)不会丢掉其转义字符的特殊意义。 #foobar echo echo foo\ bar # 两行因为转义字符在强引用(\)中失去了转义字符的意义被bash按照字面意义解释。 #foo\ #bar # Examples suggested by Stéphane Chazelas.
http://www.dnsts.com.cn/news/107804.html

相关文章:

  • 购物网站备案费用wordpress 主题导出
  • 福州开发网站公司如何与别的网站做友情链接
  • 华为网站建设和阿里云哪个好宁波seo网站推广
  • 淘宝客 备案 网站名称怎么用wordpress做企业网站
  • wordpress 导购站模板什么网站广告做多
  • 怎么做自己的网站最近国际时事
  • 网站备案 现场提交网站建设联系电话
  • 外贸网站推广 雅虎问答有用吗自学考试 网页制作与网站建设06627
  • c 是用来做网站的吗自己怎么制作图片
  • 留白的网站温州高端网站建设公司哪家好
  • 网站改版301是什么意思杭州免费自助建站模板
  • 镇江房地产网站建设智能建造概论
  • 搭建asp虚拟主机网站画册设计排版的技巧和规则
  • 创世网站建设公司wordpress 仿微博
  • 小语种外贸网站互联网ui设计是什么
  • 海南网站seo免费网站注册免费网站申请
  • 建设单位网站网站建设中的网页布局主要内容
  • 企业做网站需要注意什么网站建设销售渠道
  • 医疗器械网站制作深圳市房地产信息平台官网
  • 北京市专业网站建设微分销系统多少钱
  • 做网站 给源代码广告平台代理
  • 九江做网站的公司哪里好微商货源网下载
  • 外贸网站建设方案手机如何做微电影网站
  • 做网站好赚钱吗谷歌账号注册
  • 建设电子商务网站的试卷推广网站怎样阻止
  • 长沙网站开发微联电商哪个平台销量最好
  • 企业网站优化服务主要围绕着北京海大网智网站建设制作公司
  • 镇江房产网站建设建设厅工作证查询网站
  • 搜索引擎禁止的方式优化网站seo网站三要素怎么做
  • 南京网站建设培训育婴网站模板