手机
当前位置:查字典教程网 >脚本专栏 >linuxshell >linux中常用脚本和函数分享
linux中常用脚本和函数分享
摘要:#查找当前目录中是否存在指定目录,若不存在,则创建之复制代码代码如下:functionmkdir_1{iftest!-d$1thenmkdi...

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

复制代码 代码如下:

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

【linux中常用脚本和函数分享】相关文章:

shell脚本实现快速生成xml格式sitemap实例分享

linux Nginx 日志脚本

shell脚本echo输出不换行功能增强实例

Shell中if的基本语法和常见判断用法

Shell脚本实现的一个简易Web服务器例子分享

linux下实现ftp自动备份shell脚本

Shell脚本实现删除一年前文件功能分享

linux shell中的比较符号与特殊符号介绍

shell中的各种括号的使用方法

用来查看linux内存使用情况的shell脚本

精品推荐
分类导航