sh -x strangescript
这将执行该脚本并显示所有变量的值。
shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用:
sh -n your_script
这将返回所有语法错误。
关于bash在控制台下的快捷键
ctrl+u 删除光标以前的所有字符
ctrl+d 删除光标以前的一个字符
ctrl+k 删除光标以后的所有字符
ctrl+h 删除光标以后的一个字符
ctrl+t 调换光标前两个字符的次序
ctrl+a 移动光标到最前面
ctrl+e 移动光标到最后面
ctrl+p 上一个命令
ctrl+n 下一个命令
ctrl+s 锁定输入
ctrl+q 解除锁定
ctrl+f 移动光标到后一个字符
ctrl+b 移动光标到前一个字符
ctrl+x 标记一个位置
ctrl+c 清除当前的输入
最基本的理论基础
这里有对于三个文件的重定向定义:stdin(标准输入),stdout(标准输出)andstderr(标准错误输出)(std=standard).
基本上你可以
1.重定向stdout到一个文件
2.重定向stderr到一个文件
3.重定向stdout到stderr
4.重定向stderr到stdout
5.重定向stderr到stdout中并且成为一个文件
6.重定向stderrandstdouttostdout
7.重定向stderrandstdouttostderr
在Linux中1代表标准输出,2代表'标准错误'
标准输出
这个例子将会使ls的显示结果重定向到一个文件中.
ls-l>ls-l.txt
标准错误
这个例子将会使grep命令在运行过程中出现的错误输出到一个文件中
grepda*2>grep-errors.txt
管道
这一节我们将解释一个非常简单的并且你以后一定会用到的功能,它就是管道。
为什么大家都会用到管道?
管道可以使你非常方便的将一个程序的结果转向到另外一个程序中。
一个sed的例子
这个例子使用了非常简单的管道功能:
ls-l|sed-e"s/[aeio]/u/g"
当我们执行以下命令后:首先ls–l会先执行并且它会输出结果信息但是如果它的后面跟是一个管道符的话,那么它就会将结果重新定向到sed这个程序中,sed使用了替换功能,所以这个例子执行完会,会将ls–l结果中所有含有aeio的英文单词替换成单词u.
通过另外的方法实现ls–l*.txt
也许这种方法不同于ls–l*.txt,但是它避免了出现一条NoSuchfileOrDirectory这种信息。
ls-l|grep".txt"
当ls–l执行后,它会将程序结果输出到grep这个程序中,并且去匹配.txt这条信息。










