- 论坛徽章:
- 0
|
1、我是新手,初步理解shell是学习unix的门径。目前正在看《LINUX与UNIX Shell编程指南》,我认为这本书还是不错的,至少通俗易懂,示例丰富,错误也较少。我的主要学习方法就是逐章看,然后将例子基本都试验一遍。现在书快看完了,但前面忘得也差不多了:(。。。。如果现在让我马上写点脚本,可能还真困难,不知诸位shell高手是怎么炼成的,或是有什么好书推荐的。
2、今天调试书中示例时总结了两条经验,我这点经验可能不值高手一哂,但或许有和我一样的菜鸟不知道的,所以还是写出来:
echo 时使用\c参数实现不换行,但如果有下一条echo语句,将延续不换行,这样两条echo语句的屏幕输出会累加在一行,如果加\n则会显示一空行,此时在中间插一条echo空语句就可以中止不换行了。
- continue_prompt()
- {
- echo "按任意键继续......\c"
- DUMMY=`read_a_char`
- echo # 让\c不再延续的好办法 :)
- }
复制代码
使用set -x和set +x命令调试脚本非常方便,可以在脚本运行时显示变量取值以及循环或控制结构的执行情况,可以全程使用该命令,也可以只在认为有问题的代码段使用。(前两天我要知道就好了,不至于脚本出错时找得头昏眼花。)
- set -x
- code
- .......
- set +x
复制代码
今天碰到的问题:
发现在read变量时,如果输入了保留字,将会使条件测试失败。
- read NUM
- if [ $NUM = "" ] ; then
- echo "no input"
- else
- echo "$NUM,all right"
- fi
复制代码
运行上述代码,如果输入了!或(则脚本退出并显示:
test: argument expected
目前还不知道怎么解决。
另外就是CU发贴的小问题,由于经常用vi,所以有时手指不自觉就去按escape键,结果悲剧发生了......俺已经重写2遍这个帖子了。 |
|