shell小结(13)
程序员文章站
2022-06-29 12:54:53
...
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}"
}
上一篇: 浅谈最近百度调整对网站的冲击影响