Chinaunix首页 | 论坛 | 博客
  • 博客访问: 745722
  • 博文数量: 256
  • 博客积分: 3502
  • 博客等级: 中校
  • 技术积分: 3988
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:13
文章分类

全部博文(256)

文章存档

2014年(11)

2013年(134)

2012年(111)

我的朋友

分类: 系统运维

2013-05-27 11:09:13

kloxo:

if [ "$#" == 0 ] ; then  echo  echo " -------------------------------------------------------------------------"  echo "  format: sh $0 --type= [--version=version]"  echo " -------------------------------------------------------------------------"  echo  echo " --type - compulsory, please choose between master or slave "  echo "   depending which you want to install"  echo " --version - optional; default: 'current', or any version number as "  echo "   listed in the archive (between 'kloxo-' and '. zip')"  echo "   An archive is available at ''"  echo  echo " We need additional files when installing 6.0.x version:"  echo "   1. all additional files must be in the same place of 'kloxo-installer.sh'"  echo "   2. download kloxo from archive and then change 'version' to 'current'"  echo "   3. check thirdparty  from:";  echo "      ''"  echo "   4. download thirdparty from:"  echo "      ''"  echo "   5. rename kloxo-thirdparty..zip to kloxo-thirdparty.2012.zip"  echo  exit; fi
$#    获得参数的个数

双引号
在字符串含有嵌入的空格时,用双引号括起来。
var=”teststring newvar=”Value of var is $var echo $newvar
结果
	

Value of var is teststring


kloxo:
APP_NAME=Kloxo request1=$1 APP_TYPE=${request1#--type\=} if [ ! $APP_TYPE == 'master' ] && [ ! $APP_TYPE == 'slave' ] ; then  echo "Wrong --type= entry..."  exit; fi
	

 

$1 为命令行的第一个参数,固定为 --type=master/slave
${parameter} 和 $parameter 一样,使用${parameter}不会引起歧义
${var#Pattern} 删除从$var前端开始的最短或最长匹配Pattern的字符串
\=   转义为等号
if ....fi  单条件判断
	

if [ condition-true ] then command 1 command 2 ... else # 或选的(如果不需要就可去掉). # 如果条件测试失败,就在这里加入默认的执行命令. command 3 command 4 ... fi

字符串比较
=  等于
if [ "$a" = "$b" ]
==  等于
if [ "$a" == "$b" ]
它和=是同义词
==比较操作符在一个双方括号测试和一个单方括号号里意思不同
	

[[ $a == z* ]] # 如果变量$a以字符"z"开始(模式匹配)则为真. [[ $a == "z*" ]] # 如果变量$a与z*(字面上的匹配)相等则为真. [ $a == z* ] # 文件扩展和单元分割有效. [ "$a" == "z*" ] # 如果变量$a与z*(字面上的匹配)相等则为真.

# 多谢Stéphane Chazelas



kloxo
request2=$2 DB_ROOTPWD=${request2#--db-rootpassword\=} SELINUX_CHECK=/usr/sbin/selinuxenabled SELINUX_CFG=/etc/selinux/config ARCH_CHECK=$(eval uname -m) E_SELINUX=50 E_ARCH=51 E_NOYUM=52 E_NOSUPPORT=53 E_HASDB=54 E_REBOOT=55 E_NOTROOT=85 C_OK='\E[47;34m'"\033[1m OK \033[0m\n" C_NO='\E[47;31m'"\033[1m NO \033[0m\n" C_MISS='\E[47;33m'"\033[1m UNDETERMINED \033[0m\n"
selinuxenabled    
检查SELinux是否处于激活状态;另: echo $? 返回0说明处于激动状态,反之返 回-256;

命令替换:命令替换将会抽取出一个命令的输出, 然后使用=操作赋值到一个变量中.
$(COMMAND) 形式已经取代了反引号"`".
	

output=$(sed -n /"$1"/p $file) # 来自于 "grp.sh"例子.

# 将一个文本的内容保存到变量中.

File_contents1=$(cat $file1)

File_contents2=$(<$file2) # Bash 也允许这么做.

eval
读取一连串的参数,然后再依参数本身的特性来执行。

自定义退出码,用于诊断错误用。户定义的退出码, 范围64 - 113(还有0, 表示成功)。
用$?查看
	

#!/bin/bash ARGS=3 # 脚本要求三个参数. E_BADARGS=65 # 传递了错误的参数个数给脚本. if [ $# -ne "$ARGS" ] # 测试脚本参数的个数 then echo "Usage: `basename $0` old-pattern new-pattern filename" exit $E_BADARGS fi

整数比较
-eq  等于
if [ "$a" -eq "$b" ]
-ne  不等于
if [ "$a" -ne "$b" ]

查看
	

printf "%d\n" "$?"

在管道中,一次运行几个命令。从管道返回的状态码是最后一个命令的状态码。
Bash 也定义了一个数组称之为 PIPESTATUS ,它包含了上此运行管道中每一个命令的单独状态。
	

ls badfile.txt | wc -l

ls: badfile.txt: No such file or directory

printf "%d\n" "$?" 0 printf "%d %d\n" "${PIPESTATUS[0]}" "${PIPESTATUS[1]}" 1 0


echo
	

C_OK='\E[47;34m'"\033[1m OK \033[0m\n" echo -en "Installing as \"root\" " $C_OK

参数:
-n   不要在最后自动换行。
-e  若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
   \a 发出警告声;
   \b 删除前一个字符;
   \c 最后不加上换行符号;
   \f 换行但光标仍旧停留在原来的位置;
   \n 换行且光标移至行首;
   \r 光标移至行首,但不换行;
   \t 插入tab;
   \v 与\f相同;
   \\ 插入\字符;
   \nnn 插入nnn(八进制)所代表的ASCII字符;

kloxo
# Check if user is root. if [ "$UID" -ne "0" ] ; then  echo -en "Installing as \"root\"        " $C_NO  echo -e "\a\nYou must be \"root\" to install $APP_NAME.\n\nAborting ...\n"  exit $E_NOTROOT else  echo -en "Installing as \"root\"        " $C_OK fi 
内建变量
$UID
用户ID号
这是当前用户的用户标识号,它在/etc/passwd文件中记录。
这是当前用户的真实ID,即使只是临时通过su命令转换成另外一个用户也会显示成转换成的ID号。$UID是个只读变量,不能在命令行或是脚本中更改它,并且它和内建命令id是有些相似的。
阅读(940) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~