转载声明:本博客文章允许自由转载, 但转载需注明作者,出处
出处:
www.huntmine.com
shell特有变量
表14-2 特定s h e l l变量
$ # 传递到脚本的参数个数$ * 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$ $ 脚本运行的当前进程I D号
$ ! 后台运行的最后一个进程的进程I D号
$ @ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$ - 显示s h e l l使用的当前选项,与s e t命令功能相同
$ ? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
使用/etc/init.d/funtction里的函数来进行进程的启动,状态,停止。
开机自动打开NUMLOCK
for t in `seq 1 8`do
setleds -D +num
$t>/dev/null
done
参数 -D 才能改变default flags
当然如果把num换成caps,scroll就能改变capslock、scrolllock的状态注:man setleds
在SHELL程序中实现‘按任意键继续’
#!/bin/sh
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty raw
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "Press any key to continue..."
char=`get_char` 注:man stty
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty raw
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "Press any key to continue..."
char=`get_char` 注:man stty
如何批量杀掉进程
ps -ef |grep java |grep -v grep |awk '{print $2}' |xargs kill -9
批量启动进程
#
! /bin/sh
if [ $ # -lt "4" ]
then
echo usage : process port username_start username_stop
fi
name = $ 1
i = $ 3
j = $ 4
port = $ 2
while (( i < j ))
do
$name $port user $i arg1 arg2 &
((i ++ ))
((port ++ ))
done
if [ $ # -lt "4" ]
then
echo usage : process port username_start username_stop
fi
name = $ 1
i = $ 3
j = $ 4
port = $ 2
while (( i < j ))
do
$name $port user $i arg1 arg2 &
((i ++ ))
((port ++ ))
done
打印目录树
#!/bin/sh
# dtree: Usage: dtree [any directory]
dir=${1:-.}
(cd $dir; pwd)
find $dir -type d -print | sort -f | sed -e "s,^$1,," -e "/^$/d" -e "s,[^/]*//([^/]*/)$,/`----/1," -e "s,[^/]*/,|,g"