|
|
第 46 帖 | |
|
|
标题: 一个用阿拉伯数字转换中文大写的脚本(2)[转] 感谢作者: lvgq2001
来自: www.chinaunix.net 代码:
|
|
|
|
|
|
|
|
第 47 帖 | |
|
|
如果在控制台下没有中文平台,因为local是中文的,所以会出现乱码,在用户目录下的.bashrc文件加上下面一行,可以自动判断是否是控制台,是的话,会把local设为en,可以防止出现乱码,在X下还是中文local,和平常一样。
代码:
此帖于 03-09-09 22:49 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 48 帖 | |
|
|
一个脚本,用来方便的启动停止一些常用服务,基于对话框的.
代码:
此帖于 03-09-09 22:50 被 KornLee 编辑. |
|
|
|
|
|
|
|
第 49 帖 | |
|
|
用来方便的启动停止一些常用服务,基于X的。
#!/bin/bash #echo server manage #echo smsg() { kdialog --msgbox "$1 启动成功" } tmsg() { kdialog --msgbox "$1 停止成功" } emsg() { kdialog --error "出错 " } start(){ exno=0 while [ $exno -eq 0 ];do kdialog --menu "启动服务" 1 apache 2 sendmail 3 mysqld 4 wine 5 proftpd 6 sshd >/tmp/dialog_001.tmp exno=$? key=`cat /tmp/dialog_001.tmp` echo "nothing">/tmp/dialog_001.tmp if [ $exno -eq 1 ];then main fi if [ $exno -eq 2 ];then exit 0 fi case $key in [1])httpd -k start&&smsg "apache"||emsg;; [2])/etc/init.d/sendmail start&&smsg "sendmail"||emsg;; [3])/etc/init.d/mysqld start&&smsg "mysqld"||emsg;; [4])/etc/init.d/wine start&&smsg "wine"||emsg;; [5])proftpd&&smsg "proftpd"||emsg;; [6])/etc/init.d/sshd start&&smsg "sshd"||emsg;; *)test esac done } stop(){ exno=0 while [ $exno -eq 0 ];do kdialog --menu "停止服务" 1 apache 2 sendmail 3 mysqld 4 wine 5 proftpd 6 sshd >/tmp/dialog_001.tmp exno=$? key=`cat /tmp/dialog_001.tmp` echo "nothing">/tmp/dialog_001.tmp if [ $exno -eq 1 ];then main fi if [ $exno -eq 2 ];then exit 0 fi case $key in [1])httpd -k stop&&tmsg "apache"||emsg;; [2])/etc/init.d/sendmail stop&&tmsg "sendmail"||emsg;; [3])/etc/init.d/mysqld stop&&tmsg "mysqld"||emsg;; [4])/etc/init.d/wine stop&&tmsg "wine"||emsg;; [5])killall proftpd&&tmsg "proftpd"||emsg;; [6])/etc/init.d/sshd stop&&tmsg "sshd"||emsg;; *)test esac done } main(){ exno=0 kdialog --yesnocancel "启动服务/停止服务/退出程序" exno=$? case $exno in 0)start;; 1)stop;; *)test esac } main |
|
|
|
|
|
|
|
第 50 帖 | |
|
|
一个基于对话框的进度条,没实际作用。
function count (){ i=0 while [ $i -lt 100 ] do echo $i&&sleep 0.1&&i=`expr $i + 1` done } count |dialog --gauge "进度" 12 50 |
|
|
|
|
|
|
|
第 51 帖 | |
|
|
让scroll lock指示灯闪烁,可以起提醒作用,没人会用tty19吧?
#!/bin/bash #email:jyhln@163.com #msn:jyhln@msn.com #oicq:2899589 if [ $# != 1 ];then echo usage :$0 time exit 0 fi n=1 #sleep $1&&let "n=0"& while [ $n -le $1 ] do n=`expr $n + 1` setleds -L +scroll < /dev/tty19 #setleds -L -caps < /dev/tty19 sleep 0.5 setleds -L -scroll < /dev/tty19 #setleds -L +caps < /dev/tty19 sleep 0.5 done #setleds -L -caps < /dev/tty19 |
|
|
|
|
|
|
|
第 52 帖 | |
|
|
有时候会下载好多文件,知道有重复的,但不知道是那些。下面的脚本可以找出当前目录或指定目录下所有大小相等的文件,然后配合后面两个脚本比较二进制文件。
#!/bin/bash #email:jyhln@163.com #msn:jyhln@msn.com #oicq:28995895 echo -n>/tmp/result_001.tmp echo -n>/tmp/result.tmp if [ $# -eq 0 ];then dir_t=`pwd` else dir_t=`pwd $@` fi ls -Rlp -o --full-time $dir_t>/tmp/filelist_001.tmp #create tmp file flag=100 for line in `cat /tmp/filelist_001.tmp`;do #path if [ "`echo $line|grep ^/|grep :$`" ];then flag=100 dir_swap=$line continue fi #size if [ "`echo $line|grep ^[-s][r-][-w][-x][-r]`" -a $flag -gt 10 ];then flag=2 fi flag=` expr $flag + 1 ` if [ $flag -eq 6 ];then size=$line continue fi #file if [ $flag -eq 10 ];then flag=100 echo -e $"$size \t$dir_swap\b/$line">>/tmp/result_001.tmp #echo -e $"$size \t$dir_swap $line" fi done #if have the same size for byte in `cut /tmp/result_001.tmp -f 1` do counter=`grep -w ^"$byte" /tmp/result_001.tmp|wc -l` if [ $counter -gt 1 ];then test_n=`grep ^"$byte " /tmp/result.tmp` if [ ! "$test_n" ];then grep ^"$byte " /tmp/result_001.tmp>>/tmp/result.tmp echo>>/tmp/result.tmp fi fi done cat /tmp/result.tmp rm -f /tmp/result.tmp /tmp/filelist_001.tmp /tmp/result_001.tmp |
|
|
|
|
|
|
|
第 53 帖 | |
|
|
下面的脚本简略判断二进制文件是否相同,只采样一次,要修改采样位置大小,只能修改脚本。
#!/bin/bash #email:jyhln@163.com #msn:jyhln@msn.com #oicq:28995895 #hexdump -x -n 16 -s 100 n=16 ##采样大小 s=200 ##采样位置 if [ ! $# = 2 ];then echo usage: $0 hexfile1 hexfile2 exit 0 fi hex1=`hexdump -x -n $n -s $s $1` hex2=`hexdump -x -n $n -s $s $2` if [ "$hex1" != "$hex2" ];then echo different files fi 下面的脚本比较两个二进制文件 #!/bin/bash #email:jyhln@163.com #msn:jyhln@msn.com #oicq:28995895 #hexdump -x -n 16 -s 100 if [ ! $# = 2 ];then echo usage: $0 hexfile1 hexfile2 exit 0 fi hexdump -x $1>/tmp/hexdiff_001.tmp hexdump -x $2>/tmp/hexdiff_002.tmp diff /tmp/hexdiff_001.tmp /tmp/hexdiff_002.tmp |
|
|
|
|
|
|
|
第 54 帖 | |
|
|
下面的脚本是一个简单的rpm安装,基于X的。
#!/bin/bash #email:jyhln@163.com #msn:jyhln@msn.com #oicq:28995895 if [ $# != 1 ];then echo usage: $0 file.rpm exit 0 fi function my_install(){ kdialog --msgbox "install $1......"& rpm -ihv $1 2>/tmp/rpm_error_log rpm_exno=$? if [ $rpm_exno -eq 0 ];then killall kdialog&&kdialog --msgbox "sucsess" elif grep "is already installed" /tmp/rpm_error_log then kdialog --yesno "`grep "is already installed" /tmp/rpm_error_log`,updata?" if [ $? -eq 0 ];then rpm -Uhv $1 2>/tmp/rpm_error_log rpm_exno=$? if [ $rpm_exno -eq 0 ];then killall kdialog&&kdialog --msgbox "sucsess" else killall kdialog&&kdialog --error "`cat /tmp/rpm_error_log`" fi else killall kdialog exit 0 fi else killall kdialog&&kdialog --error "`cat /tmp/rpm_error_log`" fi rm -f /tmp/rpm_error_log 2>/dev/null } kdialog --yesno "this will install $1,continue?" sele=$? case $sele in 0)my_install $1;; 1)test;; *)test esac |
|
|
|
|
|
|
|
第 55 帖 | |
|
|
多谢jyh兄
以后发帖时注意用 代码:
![]() |
|
|
|
|
|
|
|
第 56 帖 | |
|
|
一个找字符的脚本
作者:777 源码 ----------------------------------------------------------------- #!/usr/local/bin/bash #A bash script to find a keyword. #Name findkey while true;do echo "Input directory: ( Will exit if you press e ! ) " read dir if [ $dir = "e" ];then echo "The process already exit !";exit 0;fi if [ -e $dir ];then echo -n "Input keyword: " read "key" grep -R "$key" $dir 2>/dev/null|less else "The directory is not exist ! ";fi done #祝大家中秋节快乐~~~~~ ------------------------------------------------------------------ 此帖于 03-09-10 18:41 被 777 编辑. |
|
|
|
|
|
|
|
第 57 帖 | |
|
|
一个改变系统启动运行等级的脚本,
作者:777 # cat chlevel ----------------------------------------------------------- #!/bin/bash # change the run level at the boot time. #time :2003.8.5 grep id /etc/inittab echo "Are you want change the runlevel at the boot ? (y/n) " read num if [ $num = "y" ];then if [ -e /etc/inittab ] then echo "Input a number for runlevel at system boot:" read level if [[ $level = ^[0-9] || ${#level} > 1 ]] then echo "The number is wrong." else if [[ $level >0 && $level <6 ]] then cat /etc/inittab|sed 's/id:[12345]:in/id:'$level':in/'>h&&cat h>/etc/inittab rm -fr h&&chmod 644 /etc/inittab else echo "The number is wrong!" fi;fi else echo "File not found!" fi;else echo "The run level have not change!" fi grep id /etc/inittab --------------------------------------------------------------- |
|
|
|
|
|
|
|
第 58 帖 | ||
|
|
引用:
代码:
此帖于 03-09-11 17:04 被 KornLee 编辑. |
||
|
|
|
||
|
|
第 59 帖 | |
|
|
标题: 一个比较两个文件的脚本[转] 作者:bjgirl
来自:www.chinaunix.net 代码:
|
|
|
|
|
|
|
|
第 60 帖 | |
|
|
标题: 一个定时*出提示窗口的脚本 代码:
![]() 此帖于 03-09-20 16:08 被 KornLee 编辑. |
|
|
|
|
|