Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49142
  • 博文数量: 20
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-06 10:28
个人简介

原创文章,转载请注明出处,谢谢。

我的朋友

分类: LINUX

2014-04-21 10:13:01

#!/bin/bash  
#测试变量存在与否的基本用法  
 
#DEBUG=1 
[ -n ${DEBUG-'0'} ] && set -v  
#定义两个变量,用hostname获取当前主机名  
myhostname=$(hostname)  
myhostip=  
mydir=  
msge=  
msgg=msggisok  
#取消变量myhostip  
unset myhostip  
#变量引用,语法${待测变量-默认值},若变量不存在,则符合判断,以传回默认值作为处置  
#此处变量myhostname变量存在,故不显示data,myhostip变量前面已经取消,故显示’ip is not exist‘  
a=${myhostname-'data'}  
b=${myhostip-'"ip is not exist"'}  
#此处由于前面$mydir定义为空,值存在,故不传回默认值  
c=${mydir-'dir is null'}  
#此处的$count变量不存在,用=设置值为100  
d=${count:=100}  
#“-”变量不存在,就显示默认值  
e=${msge:-'变量不存在'}  
f=${msgf-:msg2}  
#变量存在,就显示真实的值  
g=${msgg:+真实值}  
echo $a $b $c $d $e $f $g  
#变量不存在,就显示错误,并显示设置的默认值  
z=${msgz:?msgz}  
#!/bin/bash  
 
NETWORK_PATH=$(/bin/ls /etc/rc.d/init.d/network)  
echo ${NETWORK_PATH}  
echo -e '语法${变量:位置起点},此处用":2"'  
network=${NETWORK_PATH:2}  
echo ${network}  
 
 
NETWORK_PATH2=$(/bin/ls /etc/rc.d/init.d/network)  
echo ${NETWORK_PATH2}  
echo -e '语法${变量:位置起点:长度}, 此处用"2:4"'  
network2=${NETWORK_PATH2:2:4}  
echo ${network2}  
 
#!/bin/bash  
 
#显示命令的本身  
echo $0  
#显示第二个输入  
echo ${@:1}  
echo ${@:2}  
echo ${@:3}        
echo ${@:4}  
echo ${@:5}  
echo ${@:3:2}  
 
A=abcd 
echo ${#A}  
#!/bin/bash  
 
file=$(/bin/ls /etc/rc.d/init.d/network)  
echo $file  
echo "\${变量#样式},由前面开始,删除最短匹配的字符串"  
a=${file#/*/}  
echo $a  
echo "\${变量##样式},由前面开始,删除最长匹配的字符串"  
b=${file##/*/}  
echo $b  
echo "\${变量%样式},由前面开始,删除最短匹配的字符串"  
c=${file%/*}  
echo $c  
echo "\${变量%%样式},由前面开始,删除最长匹配字符串"  
d=${file%%/*}  
echo $d  
echo "\${变量/样式/替换字符串},替换第一个匹配的字符串"  
e=${file/d/NEW_WORLD}  
echo $e  
echo "\${变量//样式/替换字符串},替换所有匹配的字符串"  
f=${file//d/NEW_WORLD}  
echo $f  
echo "\${变量/样式/},删除第一个符合样式的字符串"  
g=${file/./}  
echo $g  
echo "\${变量//样式/},删除所有符合样式的字符串"  
h=${file//./}  
echo $h  
echo "\${变量/#样式/},删除开头第一个符合样式的字符串"  
i=${file/#\//}  
echo $i  
I="AB,cd,ABCDAB" 
echo $I  
echo "\${变量/%样式/},删除结尾第一个符合样式的字符串"  
j=${I/%AB/}  
#获取变量名称列表  
AB='abcd' 
ABCD='efghi' 
echo $AB $ABCD  
dir_file="$AB$ABCD" 
echo "${!开头字符串@},把所以指定字符串开头的变量名称列出"  
echo ${!AB@}  
 
#获取数组索引列表  
NUM=(a b c d e f g)  
echo "${!数组变量[@],把数组变量的所有索引列出来}"  
k=${!NUM[@]}  
echo $k  
for i in "${!NUM[@]}"  
do  
  echo "num $i:${NUM[$i]}"  
done  
 
#!/bin/bash  
 
PASSWD_PATH=$(ls /etc/passwd)  
PATH=${PASSWD_PATH:+'OK'}  
echo $PATH  
#!/bin/bash  
PS3="请选择:" 
select A in a b c d  
do  
echo $A $REPLY  
break  
done 
 
三目运算
a=1
b=2
echo $(($a==$b?0:1)) #显示结果为1
echo $(($a!=$b?0:1)) #显示结果为0
阅读(673) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~