bash (4) declare getopts noclobber

今天接到一下case, 说是用bash用的一个程序有点问题,要我看一下。

 

进到现在这个项目组里, 基本上什么语言都用过了, service是C语言写的, WS是Java写的, 有python写处理quanratine email的程序, 有ruby写的UI  WS, 有perl写的postfix 的插件. 有bash写的文件同步功能。

 

对bash从一开始的不了解, 到现在基本了解一点, 但深层次的东西,要慢慢的学习啊。

 

首先是debug功能, bash也是类似高级语言的__FILE__, 和__LINE__的内容, 如下

 

 

还遇到关于declare 的语法, 不知道是什么意思,  google了一下,

 

如果一个变量只想接受整形的赋值, 可以使用declare -i varname

 

declare -a varname 代表将varname声明成数组变量, 但是这个不是必须的。  在bash里所有的变量都可以被用作数组处理而不需要显式的声明。

 

 

下面是关于对options的处理

getopts的基本用法:

 

比如:

 

对于 $OPTARG是针对每个参数都有的。

 

noclobber

 

shell提供了一种称为noclobber的特性,该特性可防止重定向时不经意地重写了已存在的文件。通过设置变量noclobber可以将此特性打开。打开后若将输出重定向到某个已存在文件,则shell将报告错误消息,并且不执行重定向命令。如果前面的示例产生了下面的消息之一,则设置了 noclobber特性。下面的示例首先打开noclobber特性,然后是将echo的输出重定向到已存在文件,最后是关闭noclobber特性。

 $ set -o noclobber
$ echo "hi there" > tmp
bash: tmp: Cannot overwrite existing file
$ set +o noclobber
$ echo "hi there" > tmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值