| 
 
| 好不容易有时间学习linux,今天在公司弄个脚本,让它自动对我们的工程文件编译,而不需要我们自己手动去输入命令,特别是宏开关,因为客户之多,宏开关也就多,我们老大国庆前跟我说有时间好好研究下脚本,并给我一个范本,呵呵,今天下午特地跑到公司来研究研究,呵呵,还真碰到一些问题: 
 1. 如何比较两个字符串相等;举例:
 
 if [ "$test"x = "test"x ]; then
 
 这里的关键有几点:
 
 1 使用单个等号
 
 2 注意到等号两边各有一个空格:这是unix shell的要求
 
 3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected
 
 2. $1...表示什么;举例:
 
 先做一个shell: w2.sh
 
 =======================================
 
 #!/bin/bash
 
 
 
 echo $1
 
 echo $2
 
 echo $3
 
 =======================================
 
 在Linux下: chmod +x w2.sh
 
 ./w2.sh   hello boobooke   video
 
 执行结果:
 
 hello
 
 boobooke
 
 video
 
 清楚了吧? $1是传递给该shell脚本的第一个参数,$2是传递给该shell脚本的第二个参数,以此类推。
 
 3. 如何打开文件中的宏,举例:
 
 比如我要打开test.h中的宏 #define __TEST__
 
 TestStrings="__TEST__"
 
 PATH="test.h的目录"
 
 sed -ie "s/^\/\/${TestStrings}\s*/${TestStrings}/" $PATH/test.h
 
 关闭test.h中的宏 #define __TEST__
 
 sed -ie "s/^${TestStrings}\s*/\/\/${TestStrings}/" $PATH/test.h
 
 注:必须加上i,否则它不会改变源文件的内容,只会把改变后的内容在终端中显示
 | 
 |