所以!我今天下午开始学Linux/shell。
我自认为自学这类不需要什么基础也不是很高深的东西很有感觉,据说这就是所谓的“动手能力”,原以为靠这种小聪明逞强为耻,不屑,现在倒是反过来了。
环境:常见的 Bourne Shell
条件:Internet, Redflag Workstation 5。0
时间:8小时
总结:例子就是一切,阅读代码就是捷径。
摘要记录:
1、控制语句
while
...
done
if
...
else
...
fi
等等与C语言类似,不同处有:
1、语句不需要分号结尾,语句快需要do...done 或者 if ...then ...fi包围
2、条件表达式中的运算符有特殊符号。
3、变量的定义不用说明,引用时以$为前缀表示是变量而不是shell命令,最好用{}包围变量名更具可读性;通常我调用`expr` shell命令计算整数变量,它需要$前导的变量,而且运算符需要用'operator'的形式包围,以便与特殊字符区分;而用let命令或 (( expression ))计算时,它不需要,更贴近书写的数学计算式。
4、系统预定义变量最好在脚本前部赋值到内部变量,如$1,$2......,$#,$@,$?$$,等等
5、其它未说明的写法,简单说就是:按行书写,按语义顺序排列,基于shell命令,使用标准正则表达式
6、一些运算符: -lt -gt -eq -le -ge -ne (比较大小)
-e -f -b -l -d (文件属性判定)
$PS1 (第一级提示符)
$PS2 (第二级提示符)
1>&2 (标准输出和标准错误的重定向合并,合并文件在语句序列前部指定)
7、函数体定义
function()
{
...
[return sth]
}
其参数通过脚本参数传入,最好在函数体内部重新赋值到局部变量,便于跟踪调试;局部变量以下划线开头;其调用同系统预定义shell命令。
其参数通过脚本参数传入,最好在函数体内部重新赋值到局部变量,便于跟踪调试;局部变量以下划线开头;其调用同系统预定义shell命令。
就会这么多了。