5 echo展开
一、(字符)展开
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展开的更多相关文章
- php中echo(),print(),print_r(),var_dump()间的区别
echo()函数:输出一个或多个字符串.实际上它并不是一个函数,所以不必对它使用括号,直接用echo就行.然而,如果您希望向echo()传递一个以上的参数,使用括号将会生成解析错误.echo()函数比 ...
- echo print() print_r() var_dump()的区别
常用调试方法 echo()可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用. print()函数 ...
- jqGrid subGrid配置 如何首次加载动态展开所有的子表格
有时候需求需要默认加载表格的时候把子表格的数据也显示出来,经过研究相关SubGrids API配置如下: 属性 类型 描述 默认值 subGrid boolean 设置为true启用子表格.如果启用子 ...
- bash命令行返回值和展开
bash命令行返回值和展开 标签(空格分隔): bash,命令,状态,展开 1.命令状态结果和执行结果 (1)命令执行的状态返回值,命令执行完成之后,其执行状态结果值保存于bash的特殊状态变量$?中 ...
- 【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用
当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局. 步骤1.在HTML ...
- echo(),print(),print_r(),var_dump的区别?
常见的输出语句 echo()可以一次输出多个值,多个值之间用逗号分隔.echo是语言结构(language construct),而并不是真正的函数,因此不能作为表达式的一部分使用. print()函 ...
- Shell符号展开
字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...
- 常用PHP变量输出:echo, prinf, sprintf, var_dump
1.使用 echo 语句 使用 echo 可以打印变量和内容,其他可以是系统变量,也可以是HTML代码,也可以是一个PHP表达式,如下示例: $a = &q ...
- print_r print var_dump echo区别
print_r print_r(mixed $expression [,bool $true]) 显示关于一个变量的易于理解的信息,如果给出的是string/integer/float 将打印变量值本 ...
随机推荐
- NPO与X7R、X5R、Y5V、Z5U神马的有啥区别
主要是介质材料不同.不同介质种类由于它的主要极化类型不一样,其对电场变化的响应速度和极化率亦不一样. 在相同的体积下的容量就不同,随之带来的电容器的介质损耗.容量稳定性等也就不同.介质材料划按容量的温 ...
- [Java解惑]数值表达式
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- C语言程序设计现代方法1,2,3章
1:浮点型(float)运算比int慢,并且可能存在舍入误差 如float存储0.1,以后使用可能会变成0.099999999987 2:宏定义只用大写,这是大多数C程序猿遵循的规范! C语言区分大小 ...
- HDU 5826 physics(物理)
physics(物理) Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) D ...
- Mac : 强大的截图
来源:http://irising.me/2011/11/12135/ Mac的截图功能扩展功能很强大的,不要用QQ那个COM+Ctrl+A弱爆了的截图了~ 首先说一下两种截图1.Command+sh ...
- eclipse svn 忽略 target目录 等等... 我用的后边的方法 (转载)
这个build失败的解决方案就是不要把你项目的 target目录放在src repository 里面,还有 .project 和 .classpath 最好也别放到src repository 里. ...
- 如何设置table中<tr>和<td>的高度
//-----------------自定义表格table的行和列的宽和高----------------------// 先设置一个样式 如下: <style type="text/ ...
- js一些问题总结
1.undefined与null与NAN的区别 undefined表示未申明,null表示申明了没定义为空值,NAN表示不是数据类型.
- hdu4570Multi-bit Trie
链接 13年长沙邀请赛的题,神题意~ 题意:摘自http://blog.csdn.net/libin56842/article/details/9703457 这题题意确实有点难懂,起码对于我这个英语 ...
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
更新源列表 打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-- ...