[Linux]:bash shell位置参数

 
$*和$@只有在被引号包裹时才有区别,比如
传进去的参数为 "abc bcd" "ddd"
"$*"="abc bcd ddd"

"$@"="abc bcd" "ddd"

转自:http://blog.sina.com.cn/s/blog_62c5db6e0100hpp8.html

可以使用varname=value的语句定义变量值。

例如:

wel= "welcome to 小小子"
echo $wel

某些环境变量在登录时由shell预定义,还有其他三种内置变量对shell编程很重要,其实我感觉是非常重要。呵呵。

现在先简单的学一下,以后再系统的学(没办法,现在我没看到那,没法写那的东西啊,唉,不会的太多太多,一点点来吧)。

说到这,想起了 同事说过的一句话,同事问“最近学东西感觉咋样?”

我说,“还好吧,慢慢来吧,总不能一口吃个胖子不是。”

同事思索良久,后曰“慢慢可以,但是得‘来’啊!”。 :cool:

呵,扯远了,继续咱们的话题。。

最重要的特定内置变量称为位置参数。当脚本被调用时,它们保存脚本的命令行参数。

位置参数名为1,2,3等,其值由$1,$2,$3表示,还有一个位置参数0其值为脚本名(也就是要被调用的鍵入的命令)

两个特殊变量包含了所有的位置参数:*和@

它们的差别不大,但是,要注意哦,虽然其差别只能在双引号“”内才体现得出来。

$”是包含所有参数位置的单一字符串,看来老外真的很喜欢钱,尤其是“美元”。

由环境变量IFS(内部域分隔符,internal field seperator)中的第一个字符分隔。其默认为“空格”、“TAB”和NEWLINE。

$@等价于”$1″”$2″”$3″…”$N”,这里的N是位置参数数目,等价于N个单独的由空格分隔的双绰号字符串。

如果没有位置参数(即一个参数也没有),则“$@“扩展为空。

变量#保存位置参数的数目

假设有下列简单的shell脚本alice.sh

#!/bin/bash
echo "alice: $@"
echo "$0: $1 $2 $3 $4"
echo "$# arguments"

假如我鍵入命令/alice.sh welcome 小小子(这里welcome和小小子就是alice脚本的两个参数)

执行结果为:

alice: welcome 小小子
./alice.sh: welcome 小小子
2 arguments

这里$3和$4未设置,将把其换成空字符串(挺可怜的吧? :cool: )

声明: 本文采用 BY-NC-SA 协议进行授权 | 小小子
转载请注明转自《bash shell位置参数

转自:http://www.xiaoxiaozi.com/2009/05/11/409/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值