linux中常用脚本和函数分享_linux shell

#查找当前目录中是否存在指定目录,若不存在,则创建之

复制代码 代码如下:

function mkdir_1
{
  if test ! -d $1
    then
     mkdir $1
  fi
}

#指定文件中的"prefix = .*"串替换为"prefix=/home/gnome-unicore-install2/usr/"
#可以用来作为sed用法的参考

复制代码 代码如下:

function modify_prefix
{
   chmod +w $1
   cp $1 $1.bak
   sed 's/prefix = .*/prefix=/home/gnome-unicore-install2/usr/g' $1.bak > $1
   rm $1.bak
}

#指定文件中的"^LDFLAGS =.*"串替换为"LDFLAGS = -rdynamic -lgdk_pixbuf -lgtk -lgdk -lgmodule -lglib -ldl -lXext -lX11 -lm"

复制代码 代码如下:

#change_gnome-config FILENAME
function change_gnome-config
{
   cp $1 $1.bak
   sed 's/^LDFLAGS =.*/LDFLAGS = -rdynamic -lgdk_pixbuf -lgtk -lgdk -lgmodule -lglib -ldl -lXext -lX11 -lm /g' $1.bak> $1    
   rm $1.bak
}

#删除指定文件的含有指定字符的行
#格式:delete_line filename "word_contain"

复制代码 代码如下:

function delete_line
{
   chmod +w $1
   cp $1 $1.bak
   cat $1.bak | grep -v -e "$2" >$1      
}

#用途:删除文件中包含line1或(和?)line2的行
#格式:delete_line filename line1 line2

复制代码 代码如下:

function delete_line_no
{
   chmod +w $1
   cp $1 $1.bak
   sed  $2,$3'd' $1.bak>$1
   rm $1.bak

}

#用途:在LINE_NO指定的行插入字符串CONTENT
#可以用来作为sed用法的参考
#格式: add_line FILENAME LINE_NO CONTENT

复制代码 代码如下:

function add_line
{
    chmod +w $1
    cp $1 $1.bak
    sed -e $2 'i' "$3" '' $1.bak > $1
    rm $1.bak
}

#用途:检查含有"PC24"代码的程序并打印出来
#格式: check_PC24 //after installation 

复制代码 代码如下:

function check_PC24
{
  echo "now comes the PC24 checking..."
  . $COMMAND_UNICORE/shell/shell_PC24 >& /dev/null
  if test -s $COMMAND_UNICORE/PC24_result
     then :
       echo "The following file contains PC24 problems: $COMMAND_UNICORE/PC24_result "
     else
       echo "No PC24 problem found"
  fi
}

#打印标题

复制代码 代码如下:

displayheader() {
    echo "   *****************************************"
    echo "   *         IeeeCC754 testing tool           *"
    echo "   *****************************************"
    echo " "
}

#打印一个菜单的做法

复制代码 代码如下:

displayplatformmenu() {
    #clear the screen
    clear
    displayheader
    echo "   a) SunSparc "
    echo "   b) IntelPentium "
    echo "   c) AMD "
    echo "   d) Unicore32 "
    echo "   e) Unicore32(with FP2001) "
    echo " "
    echo  -n "   select a Platform > "
}

#接收一个菜单输入

复制代码 代码如下:

displayplatformmenu
read answer
case ${answer} in
      a) TARGET="BasicOp";;
      b) TARGET="Conversion";;
      *) badchoice;;
esac

#查找当前目录下是否存在file_name文件
#可以用来作为if用法的参考

复制代码 代码如下:

detectfile_name() {
  if [ ! -f file_name ]
     then
     echo "Error: file_name does not exist.  Please check"
     exit 1;
    else
      echo "OK,the directy is exist"
  fi
}

#将参数指定的一个或多个目录项以及其下的多级子目录下的所有文件名和目录名转换为小写。

复制代码 代码如下:

cvitem()
{
echo "mv $1 `dirname $1`/`basename $1 | tr
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`"
}
[ $# = 0 ] && { echo "Usage: lcdir item1 item2 ..."; exit; }
for item in $*     #可以用来作为for用法的参考
do
[ "`dirname $item`" != "`basename $item`" ] && {
[ -d $item ] &&
{
for subitem in `ls $item`
do
cvlc $item/$subitem
done
}
cvitem $item
}
done

#一个login的例子

复制代码 代码如下:

if ($?path) then
set path=($HOME/bin $path)
else
set path=($HOME/bin /usr/bin .)
endif
if ( ! $ {?DT} ); then
stty dec new
tset -I -Q
endif
set mail=/usr/spool/mail/$USER

#关于if使用的几个例子
#执行一个命令或程序之前,先检查该命令是否存在,然後才执行

复制代码 代码如下:

if [ -x /sbin/quotaon ] ; then
echo "Turning on Quota for root filesystem"
/sbin/quotaon /
fi

#得到Hostname
#!/bin/sh

复制代码 代码如下:

if [ -f /etc/HOSTNAME ] ; then
HOSTNAME=`cat /etc/HOSTNAME`
else
HOSTNAME=localhost
fi

#如果某个设定档允许有好几个位置的话,例如crontab,可利用if then elif fi来找寻

复制代码 代码如下:

if [ -f /etc/crontab ] ; then #[ -f /etc/crontab ]等价于test -f /etc/crontab
CRONTAB="/etc/crontab"
elif [ -f /var/spool/cron/crontabs/root ] ; then
CRONTAB="/var/spool/cron/crontabs/root"
elif [ -f /var/cron/tabs/root ] ; then
CRONTAB="/var/cron/tabs/root"
fi
export CRONTAB

#利用uname来判断目前系统,并分别做各系统状况不同的事。

复制代码 代码如下:

SYSTEM=`uname -s`
if [ $SYSTEM = "Linux" ] ; then
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi

#关于while使用的例子
#无条件循环

复制代码 代码如下:

while : ; do
echo "do something forever here"
sleep 5
done

时间: 2024-09-25 05:55:01

linux中常用脚本和函数分享_linux shell的相关文章

Shell脚本编程中常用的数学运算实例_linux shell

这部分主要讨论数学相关的shell脚本编程. 加法运算 新建一个文件"Addition.sh",输入下面的内容并赋予其可执行的权限. 复制代码 代码如下: #!/bin/bash echo "Enter the First Number: " read a echo "Enter the Second Number: " read b x=$(expr "$a" + "$b") echo $a + $b =

Linux中搭建FTP服务器的方法_linux shell

Linux是以后操作系统的趋势所在,目前的大部分国产操作系统,甚至于安卓系统都是与Linux离不开关系.其中,FTP作为其中共享手段存在已久,我们今天就来看看怎么搭建简单的FTP服务器吧. FTP 是文件传输协议(File Transfer Protocol)的缩写.顾名思义,FTP用于计算机之间通过网络进行文件传输.你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档.但是,需要注意的是多数的FTP站点的使用率非常高,可能需要多次重连才能连接上

linux中压缩与备份命令大全_linux shell

一.压缩与解压缩 1.compress [-rcv] 文件或目录 <==压缩 uncompress 文件.Z <==解压缩 -r:可以连同目录下的文件也同时进行压缩 -c:将压缩数据输出成standard output(输出到屏幕) -v:可以显示出压缩后的文件信息以及压缩过程中的一些文件名变化 (这个命令是非常老旧的一款) 2.gzip [-cdtv#] 文件名 -c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理 -d:解压缩的参数 -t:可以用来检验一个压缩文件的一致性,看看文件有错

Shell中实现字符串反转方法分享_linux shell

在做关键词清洗过程中,需要将一类不符合某个字结尾的词过滤出来,思路是把这一批词按最后一个字排序,于是想到了先把这些词反转一下,如把12345转为54321,好像以前在夜息的文章里看过用shell可以实现,就百度了一下,找到几个可行的解决方法,现记录一下. shell实现字符串反转,一句命令搞定! 复制代码 代码如下: cat keywords.txt|while read line;do echo $line|rev;done 命令的: 复制代码 代码如下: echo 12345|rev 543

利用linux的timerfd_create实现计时器示例分享_linux shell

timer_poll.h 复制代码 代码如下: /*  * File:   timer_poll.h * Author: Administrator */ #ifndef TIMER_POLL_H#define TIMER_POLL_H#include <sys/types.h>#include <fcntl.h>#include <signal.h>#include <sys/epoll.h>#include <stdlib.h>#includ

shell中冒号的特殊用法分享_linux shell

: ${VAR:=DEFAULT} 当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT.如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的.

分享一些Typecho中常用的调用函数

下面是相关的函数 1.站点名称 <?php $this->options->title() ?> 2.站点网址 <?php $this->options ->siteUrl(); ?> 3.完整路径标题如分享几个Typecho中常用的调用函数 <?php $this->archiveTitle(' » ', < span class="string">'', ' | '); ?><?php $this

jQuery中常用的遍历函数用法实例总结_jquery

本文实例总结了jQuery中常用的遍历函数用法.分享给大家供大家参考.具体如下: 1. children()函数 children()函数用于选取每个匹配元素的子元素,并以jQuery对象的形式返回. 你还可以使用选择器进一步缩小筛选范围,筛选出符合指定选择器的元素. 用法示例如下: // 返回jQuery对象所有匹配元素的标识信息数组 // 每个元素形如:tagName或tagName#id(如果有id的话) function getTagsInfo($doms){ return $doms.

jQuery中常用动画效果函数(日常整理)_jquery

jquery中动画效果非常多,下面小编给大家分享一下jquery中的动画函数. jQuery的效果函数列表: animate():对被选元素应用"自定义"的动画. clearQueue():对被选元素移除所有排队的函数(仍未运行的). delay():对被选元素的所有排队函数(仍未运行)设置延迟. dequeue():运行被选元素的下一个排队函数. fadeln():逐渐改变被选元素的不透明度,从隐藏到可见. fadeOut():逐渐改变被元素的不透明度,从可见到隐藏. fadeTo(