$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号("
")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2
… $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
bash -x test.sh //调试
bash -x test.sh 2>debug.txt //单独存储调试信息
diff -u version1.txt version2.txt
文件 1:version1.txt
this is the original text
line2
line3
line4
happy hacking !
文件 2:version2.txt
this is the original text
line2
line4
happy hacking !
GNU is not UNIX
diff -u version1.txt version2.txt > version.patch
--- version1.txt 2020-06-18 23:43:33.834068777 +0800
+++ version2.txt 2020-06-18 23:44:02.698717948 +0800
@@ -1,5 +1,5 @@
this is the original text
line2
-line3
line4
happy hacking !
+GNU is not UNIX
用下列命令来进行修补:
patch -p1 version1.txt < version.patchpatching file version1.txt
列命令可以撤销作出的变更:
patch -p1 version1.txt < version.patchpatching file version1.txtReversed
(or previously applied) patch detected! Assume -R? [n] y# 变更被撤销
如上例所示,对已修补过的文件再修补将撤销作出的变更。如果使用patch命令的-R选项,则不会提示用户y/n。
生成目录的差异信息
diff命令也能够以递归的形式处理目录。它会对目录中的所有内容生成差异对比。使用下面的命令:
diff -Naur directory1 directory2
该命令中出现的选项含义如下。
-N:将缺失的文件视为空文件。
-a:将所有文件视为文本文件。
-u:生成一体化输出。
-r:递归遍历目录下的所有文件。
linux基础
http://www.makeru.com.cn/course/details/2058?s=156454
快速上手linux
http://www.makeru.com.cn/live/1758_310.html?s=156454
Linux网络经典案例
http://www.makeru.com.cn/live/3485_1630.html?s=156454
Linux网络高并发技术之epoll
http://www.makeru.com.cn/live/5413_1937.html?s=156454
linux之C语言内存管理
http://www.makeru.com.cn/live/1392_382.html?s=156454
Linux网络聊天室设计
http://www.makeru.com.cn/live/1392_1099.html?s=156454