反斜线符号“ \ ”在Bash中被解释为转义字符,用于去除一个单个字符的特殊意义,它保留了跟随在之后的字符的字面值,除了换行符(\n,\r)。
如果在反斜线之后一个换行字符立即出现,转义字符使行 得以继续,但是换行字符后必须紧跟命令,不能出现空格,遇到命令很长时使用反斜线很有效。
例一:
[linux@linux ~]$ echo $HOME
/home/
[linux@linux ~]$ echo \$HOME
$HOME
例子中,反斜线去除了“ $ ”字符的特殊意义,保留字面值,从而不输出home目录路径。
例二:
export PATH=\
/bin:\
/sbin:\
/usr/bin:\
/usr/sbin:\
/usr/local/bin:\
/apps/bin:\
/apps/tools:\
/apps/tslib/bin\
例子中,反斜线使行得以继续,命令可以正常输入。
例二(反)
export PATH=\
/bin:\
/sbin:\
/usr/bin:\
/usr/sbin:\
/usr/local/bin:\
/apps/bin:\
/apps/tools:\
/apps/tslib/bin\
例子中就会出现错误:
/bin:: bad variable name/* /bin:错误变量名 */
因为在"\+换行符"之后必须紧跟命令,不能有空格。
http://blog.csdn.net/the_lifeline/article/details/66970618
在linux的一些脚本里,需在开头一行指定脚本的解释程序,如:
#!/usr/bin/env python
再如:
#!/usr/bin/env perl
#!/usr/bin/env zimbu
但有时候也用
#!/usr/bin/python
和
#!/usr/bin/perl
那么 env到底有什么用?何时用这个呢?
脚本用env启动的原因,是因为脚本解释器在linux中可能被安装于不同的目录,env可以在系统的PATH目录中查找。同时,env还规定一些系统环境变量。
http://blog.csdn.net/u014114990/article/details/47810207