linux中常用脚本和函数分享
2013-02-23 00:00
579 查看
#查找当前目录中是否存在指定目录,若不存在,则创建之
#指定文件中的"prefix = .*"串替换为"prefix=/home/gnome-unicore-install2/usr/"
#可以用来作为sed用法的参考
#指定文件中的"^LDFLAGS =.*"串替换为"LDFLAGS = -rdynamic -lgdk_pixbuf -lgtk -lgdk -lgmodule -lglib -ldl -lXext -lX11 -lm"
#删除指定文件的含有指定字符的行
#格式:delete_line filename "word_contain"
#用途:删除文件中包含line1或(和?)line2的行
#格式:delete_line filename line1 line2
#用途:在LINE_NO指定的行插入字符串CONTENT
#可以用来作为sed用法的参考
#格式: add_line FILENAME LINE_NO CONTENT
#用途:检查含有"PC24"代码的程序并打印出来
#格式: check_PC24 //after installation
#打印标题
#打印一个菜单的做法
#接收一个菜单输入
#查找当前目录下是否存在file_name文件
#可以用来作为if用法的参考
#将参数指定的一个或多个目录项以及其下的多级子目录下的所有文件名和目录名转换为小写。
#一个login的例子
#关于if使用的几个例子
#执行一个命令或程序之前,先检查该命令是否存在,然後才执行
#得到Hostname
#!/bin/sh
#如果某个设定档允许有好几个位置的话,例如crontab,可利用if then elif fi来找寻
#利用uname来判断目前系统,并分别做各系统状况不同的事。
#关于while使用的例子
#无条件循环
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中常用脚本和函数分享
- Linux新手生存笔记[10]——shell脚本基础3-函数及常用命令
- linux 常用技巧脚本分享
- Linux新手生存笔记[10]——shell脚本基础3-函数及常用命令
- Linux新手生存笔记[10]——shell脚本基础3-函数及常用命令
- linux 常用技巧脚本分享
- linux 常用技巧脚本分享
- linux 常用技巧脚本分享
- linux自动重启tomcat脚本分享
- Linux 常用时间统计函数
- Linux常用Shell脚本珍藏【转载】
- Linux常用函数中文参考手册
- 分享一个函数,linux内核0.11代码Vsprintf中的一个函数
- 脚本的编写和Linux下常用的命令
- linux系统使用python获取cpu信息脚本分享
- 分享一个Linux下安装ASM+ORACLE的自动化脚本(四)
- linux socket 编程 常用函数
- linux下的一些常用函数的总结
- Linux脚本中的延时处理函数
- [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径