1.位于第一行的#!
当shell脚本执行一个程序时,会要求UNIX内核启动一个新的进程,以便在该进程中执行所指定的程序。内核不知道该如何处理我们所编写的shell程序便
回应"not executable program"。此时shell便会启动一个新的/bin/sh的副本来执行。当系统中有多个sh时,必须有一种手段来通知系统该执行哪个sh。
#!/bin/sh -f #!/bin/sh
2.Shell的基本元素
patch --verbose --backup -p1 < /xxx.patch #一个例子 make clean; make install #可以使用 ';'来分隔两条语句 test.sh& #可以使用 '&'来让脚本后台执行 program_name=test #变量赋值 printf "this is '%s'\n" $program_name #使用$来引用变量 fullname="$first_name $second_name $third_name" #使用""可以将几个变量串联起来 tr -d '\r' < file-doc.txt > unix-doc.txt #使用'<' '>'来重定向输入输出 who | wc -l #使用'|'来建立管道 who的输出将会成为 wc的输入 cat test.txt > /dev/null #使用/dev/null来丢弃数据 stty -echo; stty echo #关闭/打开回显功能
3.访问Shell脚本的参数
echo $1 ${10} #$1,#(10)分别是shell命令行参数, >9的情况需要加大括号对 who | grep $1 #使用shell命令行参数作为查找值
4.简单的执行跟踪
set -x; set +x #打开/关闭shell执行跟踪功能
5.国际化和标准化
locale -a #查找系统支持的locale locale -ck LC_TIME #查找系统支持的Time格式 LC_ALL=it_IT ls --help #以意大利式显示ls的帮助