###Linux shell学习的好网址:http://www.runoob.com/linux/linux-shell.htm 内容比较简洁和高效 ### 1:字符串在shell中的三种表达形式: 单引号‘this is’;双引号“”;什么都不加。在‘’中,原样输出,转义字符和变量都是无效的;而“”中可以保持转移字符和变量的含义;什么都不加的做法和“”是同样的。所以shell中什么都不加的也是字符串,这就和其他编程语言有很大的区别,但是shell本身就是命令行中各种命令的集合,仔细想想这种做法也是符合通常情况下命令行的做法的,命令行中也没有加‘’或者“”。 ### 2:IO重定向 1>&2和2>&1的区别是什么?>和>&的区别?<和<&的区别? 2-1:>和>&的区别 似乎终于有点头目了>后面一般跟着的是filename文件名,而>&后面一般跟着的是FD,文件描述符,是一个文件描述符数字。同理也是<和<&的区别。因为>其实是隐含的1>,而当>&前面不指定FD时候,是1>&。对<而言,隐含的是0<;同理<&是隐含的0<&。 所以别人家的总结不是随便说说的:
COMMAND_OUTPUT >
# 将stdout重定向到一个文件.
# 如果这个文件不存在, 那就创建, 否则就覆盖.
ls -lR > dir-tree.list
# 创建一个包含目录树列表的文件.
: > filename
# >操作, 将会把文件"filename"变为一个空文件(就是size为0).
# 如果文件不存在, 那么就创建一个0长度的文件(与'