1) echo -n "hello" 运行完不换行
2) echo "money $total" ---> money
echo "money \$total" ---> money 1000000
3) date +%y%m%d ---> 20171030
4) 管道最流行的用法就是把命令的输出传给more
5) num2=`expr $num + $num1` expr命令,表示后面的内容会被当做数学算式来运行
num2=[num + num1] 方括号命令,表示方括号里面的内容是一个数学算式
6)bc,浮点运算
7)$? ---> 脚本运行的返回码
8)exit 9 ---> 返回码为9
9)
10)if 语句 ---> 直接就是语句,不要加``,就是可在交互式环境运行的命令
11)if小结: if 语句 语句执行成功,则执行后面的then
if test a xx b a和b的关系成立,则执行后面的then
if [ a xx b ] a和b的关系成立,则执行后面的thenxx为 : a -eq b a==b,运行then
a -ge b a>=b, 运行then
a -gt b a >b, 运行then
a -le b a<=b, 运行then
a -lt b a <b, 运行then
a -ne b a!=b. 运行thenif test str1 xx str2 str1和str2的关系成立,则执行后面的then
if [ str1 xx str2 ] str1和str2的关系成立,则执行后面的then
xx为 : str1 = str2 str1和str2一样,运行then
str1 != str2 str1和str2不一样,运行then
str1 > str2 str1大于str2,运行then (如果用中括号,则此处要对大于号转义)
str1 < str2 str1小于str2,运行then (如果用中括号,则此处要对小于号转义)
-n str1 str1长度不为0,运行then
-z str1 str1长度为0,运行thenif test xx
if [ xx ]
xx为 : -d file 如果file存在且是目录,运行then
-e file 如果file存在,运行then
-f file 如果file存在且是文件,运行then
-r file 如果file存在且可读,运行then
-s file 如果file存在且非空,运行then
-w file 如果file存在且可写,运行then
-x file 如果file存在且可执行,运行then
-O file 如果file存在且是当前用户所有,运行then
-G file 如果file存在且默认组和当前用户想用,运行then
file1 -nt file2 如果file1比file2新,运行then
file1 -ot file2 如果file1比file2旧,运行then
12) if [ xx ] && [ yy ]
if [ xx ] || [ yy ]
13) if 的两个高级特性 : 双圆括号和双方括号
(( expression )) :expression可以是高级数学表达式(C语言中的运算符都支持)
[[ expression ]] :expression可以是正则表达式
14)case语句
15) for循环
for循环假定list中的值是用空格(tab、换行)分割的,所以某些有空格的词需要使用双引号括起来,才能显示完整
16)bash默认是使用 空格,制表和换行 作为分隔符, 并且是通过环境变量IFS来标识的,所以如果想更改分隔符,那么就修改这个环境变量
17)在脚本中,如果出现了转移字符,比如 \n,那么对这个字符的引用要这样: $'\n' ,必须这样才能代表换行,\n,'\n'和"\n"都不能代表换行符。