引用:
关闭对特殊字符含义的解析处理被称为引用,实现方法有三种:
1. 使用反斜线(\) 转义,单独的反斜线通常用于实现其后字符的引用,当反斜线置于一个普通的字符前,如n和t,所得到的字符串称为转义序列,\n和\t实现换行和tab格式
echo \abs\3输出abs3,普通字符转义当作本意处理
2. 使用单引号('),单引号引起来的所有特殊字符都将失去它们的特殊含义,当作本意来处理
如:echo '<234$*s|n-' 会输出原样
通配符必须使用单引号,双引号或反斜线进行引用处理
如:
grep '[0-9][0-9]*$' test.txt
3. 使用双引号("),双引号禁止了除了$和反引号`以外的所有元字符,所以,双引号引起来的字符串中,$和反引号都将起作用,其他元字符都不会起作用,如:
echo "this is $USER and the date is (`date +%m/%d`) ]"
this is username and the date is (03/10)
即其允许了变量域和命令域的执行,原样显示了其他元字符。
双引号中的反斜线只在下面4个符号之前起作用:$, 反引号`,", \
shell中命令行参数中的一个或多个空格或tab只能算一个
echo hello world输出hello world
shell中只是简单的以一个空格为间隔来读取参数
例子:
echo hello; world 出现错误,提示world:command not find 分号;告诉shell,已经到了一个命令的最后
echo hello\; world
rm ch* 将删除所有以ch开头的文件
rm ch\*或rm 'ch*'或rm "ch*"可以实现删除名为ch*的文件
echo "ab\nab" 输出ab\nab
printf "ab\nab" 输出:
ab
ab
交给printf的\n使得输出换行,printf命令允许它自己的一些由反斜线定义的特殊字符
注意echo -e时不论是单引号还是双引号中都会解释\n等转义字符
echo -e "\n"和echo -e '\n'输出换行
关闭对特殊字符含义的解析处理被称为引用,实现方法有三种:
1. 使用反斜线(\) 转义,单独的反斜线通常用于实现其后字符的引用,当反斜线置于一个普通的字符前,如n和t,所得到的字符串称为转义序列,\n和\t实现换行和tab格式
echo \abs\3输出abs3,普通字符转义当作本意处理
2. 使用单引号('),单引号引起来的所有特殊字符都将失去它们的特殊含义,当作本意来处理
如:echo '<234$*s|n-' 会输出原样
通配符必须使用单引号,双引号或反斜线进行引用处理
如:
grep '[0-9][0-9]*$' test.txt
3. 使用双引号("),双引号禁止了除了$和反引号`以外的所有元字符,所以,双引号引起来的字符串中,$和反引号都将起作用,其他元字符都不会起作用,如:
echo "this is $USER and the date is (`date +%m/%d`) ]"
this is username and the date is (03/10)
即其允许了变量域和命令域的执行,原样显示了其他元字符。
双引号中的反斜线只在下面4个符号之前起作用:$, 反引号`,", \
shell中命令行参数中的一个或多个空格或tab只能算一个
echo hello world输出hello world
shell中只是简单的以一个空格为间隔来读取参数
例子:
echo hello; world 出现错误,提示world:command not find 分号;告诉shell,已经到了一个命令的最后
echo hello\; world
rm ch* 将删除所有以ch开头的文件
rm ch\*或rm 'ch*'或rm "ch*"可以实现删除名为ch*的文件
echo "ab\nab" 输出ab\nab
printf "ab\nab" 输出:
ab
ab
交给printf的\n使得输出换行,printf命令允许它自己的一些由反斜线定义的特殊字符
注意echo -e时不论是单引号还是双引号中都会解释\n等转义字符
echo -e "\n"和echo -e '\n'输出换行