一、(字符)展开

1.echo在标准输出中打印出他的文本

echo this is a test
输出 this is a test

2.输出通配符时,比如*代表匹配文件名的任何字符

echo *
输出 Desktop Decuments ls-output.txt Music Picture Temple Videos

shell把*展开成了另外的东西(在这种情况下,就是在当前工作目录下的文件名字)

二、路径名展开——用*

1.如上,打印当前工作目录

echo *
输出 Desktop Decuments ls-output.txt Music Picture Temple Videos

2.找到首字母为D的文件

echo D*
输出Desktop Documents

3.找到最末字符是s的文件

echo *s
输出Documents Pictures Temples Videos

4.查看主目录之外的目录

echo /usr/*/share
输出 /usr/kerberps/share /usr/local/share

5.另外,隐藏文件名依旧可以借此展开

echo .*
输出. .. .bash_logout .bashrc .cache .config .gconf ICEauthority .local .profile

三、波浪线展开

1.当他用在一个单词的开头,它会展开指定用户的主目录名

echo ~xiaohui
输出 /home/xiaohui

2.如果没有指定用户名,则是当前用户的主目录

echo ~
输出 /home/mylinuxusername

四、算术表达式展开

echo $(($((**))*))  注意**是去幂,另外使用$需要两层$(())
输出 75

五、花括号展开

创建多个文本字符串

 echo Front-{A,B,C}-Back 输出 Front-A-Back Front-B-Back  Front-C-Back
echo Number_{..} 输出Number_1 Number_2 Number_3 Number_4 Number_5
echo a{A{,},B{,}}b 输出aA1b aA2b aB3b aB4Bb

六、参数展开

1.展开用户名

echo $USER    输出 mylinuxname

2.查看有效的变量列表

printenv | less

七、命令替换 

允许我们把一个命令的输出作为一个展开模式来使用

echo $(ls)
输出 Desktop Documents ls-output.txt Music Pictures Public Templates Videos

八、引用   控制展开,选择的禁止不需要的展开

1.shell的echo命令删除多余空格

echo this is a             test
输出 this is a test

2.参数展开把$1的值替换成一个空字符串,因为1是没有定义的变量

echo the total &100.00
输出 the rotal 00.00

九、双引号

shell使用的特殊字符,除了& \反斜杠  ‘倒引号之外,则失去他们的特殊含义,被当做普通字符来看待,这意味着单词分割、路径名展开*、波浪线展开~和或花括号展开{}都被禁止,

然而参数展开、算数展开和命令替换仍然执行

1.例

ls -l "two words.txt"   实际文件名是two_words,所以如果写错了,写成了 two words是会出错的,但是如果使用了双引号,因为_和空格在双引号作用相同,所以,这样就可以正常作用了

2.一个例子区别之前情景

echo “this is a             test”
输出 this is a test

3.命令替换产生微妙的影响

echo $(cal)   输出February  Su Mo Tu We Th Fr Sa
echo "$(cal)" 输出类似cal输出 ……

十、单引号

用于禁止所有的展开

 xiaohui@ubuntu:~$ echo test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((+)) $USER     输出 test -/*.txt a b $ a b xiaohui  xiaohui
xiaohui@ubuntu:~$ echo "test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER" 输出test -/*.txt {a,b} $ {a,b} xiaohui xiaohui
xiaohui@ubuntu:~$ echo 'test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER' 输出test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((+)) $USER

 

十一、转义字符   \反斜杠

使用转义字符消除文件命中一个字符的特殊含义

echo "the balance for user $USER is :\&5.00"
输出the balance for user me is :&5.00

5 echo展开的更多相关文章

  1. php中echo(),print(),print_r(),var_dump()间的区别

    echo()函数:输出一个或多个字符串.实际上它并不是一个函数,所以不必对它使用括号,直接用echo就行.然而,如果您希望向echo()传递一个以上的参数,使用括号将会生成解析错误.echo()函数比 ...

  2. echo print() print_r() var_dump()的区别

    常用调试方法 echo()可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用. print()函数 ...

  3. jqGrid subGrid配置 如何首次加载动态展开所有的子表格

    有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...

  4. bash命令行返回值和展开

    bash命令行返回值和展开 标签(空格分隔): bash,命令,状态,展开 1.命令状态结果和执行结果 (1)命令执行的状态返回值,命令执行完成之后,其执行状态结果值保存于bash的特殊状态变量$?中 ...

  5. 【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用

    当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局. 步骤1.在HTML ...

  6. echo(),print(),print_r(),var_dump的区别?

    常见的输出语句 echo()可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用. print()函 ...

  7. Shell符号展开

    字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...

  8. 常用PHP变量输出:echo, prinf, sprintf, var_dump

    1.使用 echo 语句       使用 echo  可以打印变量和内容,其他可以是系统变量,也可以是HTML代码,也可以是一个PHP表达式,如下示例:                $a = &q ...

  9. print_r print var_dump echo区别

    print_r print_r(mixed $expression [,bool $true]) 显示关于一个变量的易于理解的信息,如果给出的是string/integer/float 将打印变量值本 ...

随机推荐

  1. CVE-2015-1328(本地提权漏洞)

    /* # Exploit Title: ofs.c - overlayfs local root in ubuntu # Date: 2015-06-15 # Exploit Author: rebe ...

  2. Beaglebone Black– 智能家居控制系统 LAS - 网页服务器 Node.js 、Web Service、页面 和 TCP 请求转 UDP 发送

    上一篇,纯粹玩 ESP8266,写入了 init.lua 能收发 UDP.这次拿 BBB 开刀,用 BBB host 一个 web server ,用于与用户交互,数据来自 ESP8266 的 UDP ...

  3. 参数(条件表)灵活配置GS01/GS02/GS03

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. CUBRID学习笔记 15 Lobs类型数据

    BLOB: Binary large object CLOB: Character large object 一个二进制 一个字符类型 二进制的读取 CUBRIDCommand cmd = new C ...

  5. FJNU 1159 Fat Brother’s new way(胖哥的新姿势)

    FJNU 1159 Fat Brother’s new way(胖哥的新姿势) Time Limit: 1000MS   Memory Limit: 257792K [Description] [题目 ...

  6. Comware 架构理解

    网络操作系统 首先什么是网络操作系统: 一种说法是:运行在路由器,网络交换机,防火墙上的特别的操作系统 另一种说法是:部署在局域网或者私有网络,允许网络中的多个计算机共享文件和打印机,因为现在的单机系 ...

  7. HDU1016 Prime Ring Problem(DFS回溯)

    Prime Ring Problem Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  8. SQL SERVER分区表

    简介 分区表是在SQL SERVER2005之后的版本引入的特性.这个特性允许把逻辑上的一个表在物理上分为很多部分.而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个 ...

  9. 在CSS中,BOX的Padding属性的数值赋予顺序为

    4种可能的情况,举例说明: padding:10px; // 四个内边距都是10px padding:5px 10px; // 上下5px 左右10px padding:5px 10px 15px; ...

  10. Android Studio常见问题 -- AndroidManifest.xml 覆盖问题

    问题如下 D:\source-code\AndroidStudio\MyApplication\app\src\main\AndroidManifest.xmlError:(14, 9) Attrib ...