`
venceinfo
  • 浏览: 38273 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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}" 
}

 

分享到:
评论

相关推荐

    shell 编程小结

    ### Shell编程小结 在IT领域,特别是操作系统与脚本编程方面,Shell占据了举足轻重的地位。Shell作为用户与操作系统之间沟通的桥梁,在UNIX和Linux系统中扮演着核心角色。本文将深入探讨Shell编程的基础知识、核心...

    unix--shell的一些特殊参数小结

    ### Unix Shell 特殊参数详解 #### 一、引言 在 Unix Shell 编程中,存在许多常用但容易被遗忘的重要概念与技巧。本文旨在总结这些知识点,帮助读者更好地理解和掌握 Unix Shell 的核心功能之一——特殊参数。通过...

    Seacms代码审计小结(后台多处getshell)1

    Seacms代码审计小结主要关注的是框架中存在的安全漏洞,特别是与文件写入和文件包含相关的风险。在Seacms中,发现了一些未经过滤的文件写入操作和不安全的文件包含行为,这些都可能导致代码执行(getshell)的风险。...

    梁博shell脚本训练集训学习小结V0.11

    梁博shell脚本训练集训学习小结V0.11 在 Linux 操作系统中, shell 脚本是非常重要的一部分。shell 脚本可以帮助用户自动化repeatitive任务,提高工作效率。梁博shell脚本训练集训学习小结V0.11主要讲述了shell脚本...

    shell编程中的字符串截取方法小结

    一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : ‘\(.\\).*’ 6.echo $a|dd bs=1 count=8 2&gt;...

    shell 编程指南pdf

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    LINUX与UNIX SHELL编程指南(很全)

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    Linux与unix shell编程指南

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    Shell脚本if else语句小结

    和Java、PHP等语言不一样,sh的流程控制不... 代码如下: &lt;?...if (isset($_GET[“q”])) {  search(q); } else {  //do nothing ...在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样: ...

    绝版经典《Linux与UNIX Shell编程指南》

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    LINUX与UNIX SHELL编程指南 高清PDF

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    Linux shell 编程

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    用Shell判断字符串包含关系的方法小结

    以下给出一些shell中判断字符串包含的方法,来源程序员问答网站 stackoverflow 以及segmentfault。 方法一:利用grep查找 strA=long string strB=string result=$(echo $strA | grep ${strB}) if [[ $result != ]] ...

    Shell脚本数组操作小结

    Shell脚本中的数组操作是日常自动化任务中非常实用的功能,特别是在处理批量数据和流程控制时。下面我们将详细探讨数组的定义、读取、替换、删除、复制和计算等操作。 ### 定义数组 在Bash中,数组的定义非常简单...

    shell脚本编程电子书

    ### 小结 通过上述知识点的学习,我们可以了解到Bourne Shell不仅是Unix系统中的命令解释器,也是一种强大的脚本语言。掌握其基础语法和高级功能可以帮助我们更高效地管理Unix系统,实现自动化任务处理。

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三...

    LINUX与UNIX SHELL编程指南

    第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...

Global site tag (gtag.js) - Google Analytics