- 通配符的替换,发生在命令执行之前!
- 通配符种类:
*:匹配任意字符0次或多次出现。?:匹配任意一个字符。[字符组]:匹配该字符组所限定的任何一个字符。- 其中可以使用
-来表示一个范围。比如[1-4]表示[1234]。不过注意只能在[]里面使用。
- 其中可以使用
!:如果跟在[]的[后面的话,表示排除 [字符组] 的字符,匹配其他字符。
2、参数拓展
touch 1.txt 2.txt 3.txt 4.txt 可以用 touch {1,2,3,4}.txt 或者 touch {1..4}.txt 来替换。
此外,还可以用多个大括号括起来配合,如 touch {1..4}_{5..6}.txt 会创建八个文件!
3、命令代换
使用倒引号 ` 括起来的字符串会被 shell 解释为命令行。比如:
#!/bin/bash
datetime=`date`
echo "dateTime is $datetime" 其等价于 $(cmd)。
要注意的是,如果出现倒引号 ` 嵌套,则需要对**内层**的倒引号 ` 使用 \ 进行转义!
所以更推荐的操作是**外层用 $()**,然后里层可以用倒引号 `。
常常用于下面的场景,比如说固定在某个文件的位置处生成文件:(3、4行可以忽略)
#!/bin/bash
#固定生成文件在当前目录下
#curpath=`cd \`dirname $0\`; pwd` #这种写法不推荐
curpath=$(cd `dirname $0`; pwd)
touch $curpath/1.txt