当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于shell中变量设置缺省值的一点疑问?
帖子发表于 : 2009-07-11 17:17 
头像

注册: 2006-03-04 23:10
帖子: 888
地址: 江西高安
送出感谢: 0 次
接收感谢: 2
变量通过这句来设置缺省值:
echo "validating.. ${WHEN:="Saturday"}"

我想了解下设置变量缺省值,能否提供一些资料?有没有其他设置变量缺省值的方法?
谢谢~


代码:
#!/bin/bash
#caserep
echo "    Weekly Report"
echo -n "What day do you want to run report [Saturday]:"

#if just a return is hit then except default which is Saturday
read WHEN
echo "validating.. ${WHEN:="Saturday"}"
 case $WHEN in
 Monday|monday|MONDAY|mon)
 ;;
 Sunday|sunday|SUNDAY|sun)
 ;;
 Saturday|saturday|SATURDAY|sat)
 ;;
 *) echo "Are you nuts!,this report can only be run on" >&2
  echo "on a Saturday,Sunday or Monday" >&2
  exit 1
;;
esac
echo "Report to run on $WHEN"
#command here to submitted actual report run.


_________________
QQ:273247606
EMAIL:yanghui1986527@gmail.com


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于shell中变量设置缺省值的一点疑问?
帖子发表于 : 2009-07-15 19:18 
头像

注册: 2008-03-23 0:39
帖子: 769
送出感谢: 0 次
接收感谢: 4
http://manpages.ubuntu.com/manpages/har ... ash.1.html


${parameter:-word}
Use Default Values(使用默认值)。如果 parameter
未定义或值为空,将替换为 word 的扩展。否则,将替换为 parameter
的值。
${parameter:=word}
Assign Default Values(赋默认值)。如果 parameter 未定义或值为空,
word 的扩展将赋予 parameter. parameter
的值将被替换。位置参数和特殊参数不能用这种方式赋值。
${parameter:?word}
Display Error if Null or
Unset(显示错误,如果未定义或值为空)。如果 parameter
未定义或值为空,word (或一条信息,如果 word 不存在)
的扩展将写入到标准错误;shell 如果不是交互的,则将退出。否则,
parameter 的值将被替换。
${parameter:+word}
Use Alternate Value(使用可选值)。如果 parameter
未定义或非空,不会进行替换;否则将替换为 word 扩展后的值。
${parameter:offset}
${parameter:offset:length}
Substring Expansion(子字符串扩展)。 扩展为parameter 的最多
length 个字符,从 offset 指定的字符开始。如果忽略了
length,扩展为 parameter 的子字符串, 从 offset
指定的字符串开始。length 和 offset 是算术表达式 (参见下面的
ARITHMETIC EVALUATION 值段落)。 length 必须是一个大于等于
0 的数值。如果 offset 求值结果小于 0, 值将当作从 parameter
的值的末尾算起的偏移量。如果 parameter 是 @,结果是 length
个位置参数,从 offset 开始。 如果 parameter 是一个数组名,以 @
或 * 索引,结果是数组的 length 个成员,从 ${parameter[offset]}
开始。 子字符串的下标是从 0 开始的,除非使用位置参数时,下标从 1
开始。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译