Linux中特殊符号的作用

1 $? $# $* $n $0

  1. $?表示上一次的输出结果,若为0:表示成功;不是0,表示失败
  2. $#表示脚本中参数的个数
  3. $*表示对应参数的值
  4. $n表示为(n>=1)的参数
  5. $0表示脚本名
###这是测试脚本
#!/bin/sh
echo 这是脚本名字:$0
echo 总共有$#个人,分别是$*
echo 第一个人是$1,第二个人是$2
### 这是运行结果
这是脚本名字:sympol.sh
总共有2个人,分别是李四 张三
第一个人是李四,第二个人是张三

$?的测试:
在这里插入图片描述

2 分号

分号是多个语句之间的分隔符号,当只有一个语句的时候,末尾无需分号,最后一个语句后面也无需分号,否则报错

3 引号

单引号中是原始字符串
双引号可以对特殊字符进行扩展
一般不写的就是当双引号用的

a=bcdef
echo $a # 输出bcdef
echo "$a" #双引号将进行变量扩展 ,输出bcdef
echo '$a' #单引号直接输出$a

4 括号的作用

4.1 命令替换

$( ) 和反引号`(tab按键上面) 作用相同:命令替换
在这里插入图片描述

4.2 数值运算

  • $(( ))是整数数值运算,也可用(( )) 代替
  • $[ ]也是进行数学运算的;

4.3 test运算

[ ]是代替test运算符的,也可用[[ ]]代替,使用双中括号,逻辑更加严谨

4.4 ${}

4.4.1 界定符号

${}界定符号,比如$ab,就相当于${ab},而${a}b才是只取a的值
对于linux符号的使用例子,可以参考本人的linux小游戏来熟悉

4.4.2 取路径,文件名,后缀

#假设一个变量名为file
file=/dir1/dir2/dir3/my.file.txt
${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
${file##*.}:删掉最后一个 . 及其左边的字符串:txt
${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:

  • # 表示从左边算起第一个(键盘上#$的左边,要注意使用#时,删除符号*放在标志符号(/或.)左边)
  • ##:表示从左边算起最后一个
  • %表示从右边算起第一个(键盘上%$ 的右边,要注意使用%时,删除符号*放在标志符号(/或.)右边)
  • %%:表示从右边算起最后一个
  • 单一符号是最小匹配两个符号是最大匹配
  • *:表示要删除的内容,对于###的情况,它位于指定的字符(例子中的'/'和'.')的左边,表示删除指定字符及其左边的内容;对于%%%的情况,它位于指定的字符(例子中的'/'和'.')的右边,表示删除指定字符及其右边的内容。这里的*的位置不能互换,即不能把*号放在###的右边,反之亦然。

5 与(&)或(|)

5.1 与&

  • &:表示任务在后台执行,在后台运行,redis-server &
  • &&:表示前一条命令执行成功时,才执行后一条命令,如:echo '1' && echo '2'

5.2 或|

  • |:表示管道符,上一条命令的输出作为下一条命令参数
  • ||:表示上一条命令执行失败后,才执行下一条命令,如:cat nofile || echo '1'
发布了334 篇原创文章 · 获赞 186 · 访问量 31万+

猜你喜欢

转载自blog.csdn.net/u012060033/article/details/104310372