1
mv info{,.old} 扩展为mv info info.old
2
cmd &后台执行
(cmd) 在自shell中执行
cmd1 `cmd2` 注意是反引号,将cmd2的结果作为1的参数
cmd && cmd2 1成功后才执行2,&&还可以替换成||,表示1执行失败才执行2
3
几种shell的配置文件路径
sh bash -- .profile
ksh -- .kshrc
csh -- .cshrc和.login
4
shell变量名的定义、引用学过perl后就不容易忘了,很简单""双引号变量内插,''单引号只是字面变量,``反引号执行一个程序,要明确界定一个变量名有${UX}tm的方式还有"$UX"的方式
5
$#变量个数(不包含程序名称) $*变量组成的数组
$0 $1 $2 ... 分别表示对应的变量
$? 前一个命令的返回值
$$ 当前shell的pid
6
${Var:-word} Var有值非空取Var值否则取word,Var不变
${Var:=word} Var...Var变成word
${Var:+word} Var有值非空取word,否则Var为空
7
test命令的应用
-d 目录、存在 -f 文件、存在 -r -w -x可读可写可执行
= != 字符串相等不等
-eq -ne -lt -le -gt -ge 数字等于、不等于、大于、大于等于...
有点意思的是数字和字符串比较的符号正好跟perl相反
8
条件控制语句
if [ condition ]
then
else
fi
if [ condition ]
then
elif [ condition2 ]
then
else
fi
case word in
pattern1) cmdlist1;;
pattern2) cmdlist2;;
*) cmdlistn;;
esac
for variable in list
do
done
while [ condition ]
do
done
until [ condition ]
do
done
9
执行算数运算用expr如 expr $count+1
10
读取信息read [word1] [word2] ...
11
echo的输出信息 \c输出不换行 \b backspace
12
调戏shell的方法
-v 详细跟踪
-x 实际命令运行的跟踪
未完待续