linux 展开,快乐的Linux命令行之shell展开

本文详细介绍了Linux Shell在执行命令时的处理步骤,包括特殊符号的处理、命令的组合使用,如echo、ls、通配符和花括号展开。同时,讲解了Shell中的算术表达式、主目录相关操作、参数展开、命令替换等功能,并通过实例演示了如何利用双引号、单引号和转移字符来控制命令的展开。此外,还探讨了如何通过转义序列和echo-e来处理控制码。
摘要由CSDN通过智能技术生成

1,Linux中,shell在执行的时候会经过几个处理步骤

例如echo this is a test 和echo *的输出结果的区别,*是经过特别处理了。

2,另外说几项命令,来学习记忆一下。

echo * |

echo work/*

echo [[:upper:]]*

ls -a 和ls -A是有区别的,ls -a是全部,但是ls -A是合理的。

ls -d .[!.]?* 这是取开头是一个.并且第二个不是.并且至少后面有字符的名字。

3,~    主目录相关。

4,算术表达式

echo $((2+2))

echo $(($((5**3)) +3))  **取幂,并且算术表达式可以嵌套,但是只能取整。

5,花括号展开

echo Front-{A,B,C}-back

echo Number_{1..5}

echo {z..a}

echo a{A{1,2},B{3,4}}b      花括号也可以嵌套。

6,参数展开

echo $USER

7,命令替换      (相当于把命令的结果传参)

echo $(ls)

ls $(which cp)

ls `which cp` 和上面的是等价的,将$()换成了倒引号。另外这个是老版本命令行的,bash中在使用。

8,前面的都是shell的展开,后面讲控制shell的展开。

a,双引号

双引号括上的,被视作文本(除了$    \    ``之外的)。参数展开,算术展开,命令替换任然执行。

cal

echo cal

echo $(cal)

echo "$(cal)"这四者之间的区别。        命令行将不带引号的由空格,\t,\n分隔的单词看做一个个参数,因此,会去掉多余的空格和\t\n等。而用双引号括起来之后,就是只有一个参数了。例如:echo this is  a       test和echo“this is a       test”之间的区别,cal的原因也是这个。

b,单引号

单引号是禁止所有的引用

参数展开,算术展开,命令替换也不可以,可以试一下,对比。

c,转移字符,反斜杠\

阻止展开的作用

ASCII码表中前32个字符被用来把命令转输到电报机一样的设备。控制码

\a    响铃

\b    退格符

\n    新的一行

\r    回车符

\t   制表符

echo -e会解释转义序列,只用echo的话,\n不会换行,还是\n输出到屏幕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值