shell小结(13)

function check_space()
{
   local check_dir=$1
   local need_space=$2
   local avail=$(df -B1m $check_dir | sed -n '$p' | awk '{print $(NF-2)}')

   [ $avail -le $need_space ] && \
   die "not enough space in ${check_dir} (need:${need_space}M available:${avail}M)"
}
-------------------------------------------------------------------------------------------
#利用root用户执行,得到oracle的版本
su - oracle -c "sqlplus -version" | grep "11.1.0.6"
-------------------------------------------------------------------------------------------
#求操作系统的版本:
NEW_VERSION=`uname -r|cut -d - -f 1`-`uname -r|cut -d - -f 2`
-------------------------------------------------------------------------------------------
#!/bin/bash

#true是关键字
while true
do
  echo "ok"
done
-------------------------------------------------------------------------------------------
for f in ${files[@]}
do
    cfgs=`{
            while read line
            do
               echo $line | grep -o '${.[^${}]*}' | sed -e 's/${//g' | sed 's/}//g'
            done
           } < $f`

    cfgarr=(`echo $cfgs | tr -s ' ' '\n' | sort -u | tr -s ''`)
done

这里的{}可有可无

注意:tr -s ''只有在``之间,才会自动将换行转为空格,其他情况不会
#得到自然排序的数组
retStr=`echo $localnetypelist |  tr -s ' ' '\n' | sort | tr -s ''`
retArr=($retStr)
-------------------------------------------------------------------------------------------

#这个例子就可以看出:$()要比``好,如果使用``则会报错
#!/bin/bash
set -x
str="my name is AAAAA"

xx="AAAAA"
name=xx
newname="BBBBB"
VV=$(eval echo \${$name})
ret=`echo $str | sed "s/${VV}/${newname}/g"`

echo $ret

另一种方法:把eval写在一个函数中
function getValue
{
	eval echo $1
}

注意:
这里sed的用法,利用的是"",这样的好处就是:对于替换的变量,可以直接以${}使用,而不必再加上''

#sed替换文件中的字符串的常用方法:
sed "s|$old_result|${result}|g" $result_path > temp.$$.$$
mv temp.$$.$$ $result_path

#sed用法补充:
sed '/pam_securetty.so/'c\ "#${LINE}" /etc/pam.d/login_bak  >  /etc/pam.d/login

#当使用多个s进行替换操作时,这时的/方式就会报错,而下面的三种方式都可以
echo "abc" | sed "s#a#A#;s|b|B|;s:c:C:;"

function create_pxe_file()
{
	local CMD1="s|<vmware-inst-server>|$DMS_SERVER|;\
							s|<vmware-inst-path>|$NFS_PATH|;\
							s|<linux-conf-server>|$DMS_SERVER|;\
							s|<linux-conf-path>|$LINUX_CONF_PATH|;\
							s|vmware-ks|$CONTROL_FILE|;\
							s|ethX|$NET_DEVICE|;\
							s|<tftp-server>|$DMS_SERVER|;\
							s|<linux-addon-server>|$DMS_SERVER|;\
							s|<linux-addon-path>|$ADDON_PATH|;"

	sed -e "$CMD1" $PXE_TEMPLATE_FILE > $PXE_PATH/"01-${BLADE_MAC}" 
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值