1.快速创建文件
cat >> myfile.txt <<
yjg.txt
zhanghong.txt
kkk
2.快速创建打印文档
lpr << KK
asdfsd
asdf
sdf
sadf
KK
3.自动选择菜单
usr/local/sybin/syb_backup >> $log_f 2>&1 << MAYDAY
kasdfsdf
sdfsadfk
sdfk
MAYDAY
4.自动ftp传输
ftp -i -n 目标主机 filename
5.日期格式
[root@localhost yjg]# date +%d%m%y
231210
[root@localhost yjg]# date +%d-%m-%y
23-12-10
[root@localhost yjg]# date +%A" "%R" "%P
Thursday 21:46 pm
[root@localhost yjg]# date +%T
21:46:22
[root@localhost yjg]# date +%A" "%T
Thursday 21:46:35
6.使用date创建日期文件
#!/bin/sh
#log.sh
MYDATE=`date +%d%m%y`
LOGFILE=/usr/local/yjg/bakup_log.$MYDATE
>$LOGFILE
MYTIME=`date +%d%R`
LOGFILE2=/usr/local/yjg/admin_log.$MYTIME
>$LOGFILE2
7.创建临时文件
#!/bin/sh
#temp.sh
HOLD1=/usr/local/yjg/hold1.$$
HOLD2=/usr/local/yjg/hold2.$$
df -tk > $HOLD1
cat $HOLD1 > $HOLD2
rm /usr/local/yjg/*.$$
8.信号
kill -l
9.捕捉到信号的处理
trap "" 2 3 --- 忽略信号2和信号3,用户不能终止该脚本
trap "commonds" 2 3 如果捕捉到信号2或3,就执行相应的commands命令
trap 2 3 复位信号2和3 ,用户可以终止该脚本
[root@localhost yjg]# my_exit(){
> echo "You just hit <CTRL-C>, at number kkk"
> echo "I will now exit"
> exit 1
> }
[root@localhost yjg]# while :
> do
> -bash: syntax error: unexpected end of file
[root@localhost yjg]# trap "my_exit" 2
[root@localhost yjg]# LOOP=0
[root@localhost yjg]# while :
> do
> LOOP=` expr $LOOP + 1 `
> echo $LOOP
> done
10.捕捉到信号后,清理临时文件
#!/bin/sh
#trap2.sh
HOLD1=/usr/local/yjg/hold1.$$
HOLD2=/usr/local/yjg/hold2.$$
function my_exit(){
echo "<CTRL-C> deleted.. Now cleaning up .. wait"
rm /usr/local/yjg/*.$$ 2> /dev/null
exit 1
}
trap "my_exit" 2
echo "processing ..."
while :
do
df >> $HOLD1
ps xa >> $HOLD2
done
11.锁定终端
stty sane ----解决回车问题
#!/bin/sh
#lockit.sh
TTY=`tty`
echo $TTY
function nice_try(){
echo "Nice try, the terminal stays locked"
}
trap "nice_try" 2 3 15
SAVEDSTTY=` stty -g `
echo "SAVEDSTTY: $SAVEDSTTY"
stty -echo
echo -n "Enter your password to lock $TTY :"
read PASSWORD
clear
echo "password: $PASSWORD "
while :
do
read RESPONSE < $TTY
echo "response: $RESPONSE "
if [ "$RESPONSE" = "$PASSWORD" ]; then
echo "unlocking ..."
break
fi
echo "wrong password and terminal is locked .."
done
stty $SAVEDSTTY
stty echo
12.忽略信号
#!/bin/sh
#ignore.sh
trap "" 1 2 3 15
LOOP=0
function my_exit(){
echo "Received interrupt on count $LOOP"
echo "Now exiting..."
exit 1
}
LOOP=1
while :
do
LOOP=` expr $LOOP + 1 `
echo "critical processing.. $LOOP .. you cannot interrupt me"
sleep 1
if [ "$LOOP" -eq 6 ]; then
break
fi
done
LOOP=0
trap "my_exit" 1 2 3 15
while :
do
LOOP=` expr $LOOP + 1 `
echo "Non-critical processing..$LOOP..interrupt me now if you want"
sleep 1
if [ "$LOOP" = 6 ]; then
break
fi
done
13.eval ----进一步解释字符串中的命令
执行含有字符串的变量
[root@localhost yjg]# MYFILE="cat testtf.txt"
[root@localhost yjg]# echo MYFILE
MYFILE
[root@localhost yjg]# eval $MYFILE
May Day, May Day
Going Down
给每一个值一个变量名
#!/bin/sh
#eval_it.sh
while read NAME TYPE
do
eval ` echo "${NAME}=${TYPE}" `
done < data.txt
echo "You have a $PC pc, with a $MONIYOT monitor"
echo "and are you network ? $NETWORK "
14.logger命令
logger -p notice "This is a test message.Please Ignore $LOGNAME"
[root@localhost log]# tail -3 messages
Dec 24 00:03:33 localhost sshd(pam_unix)[5907]: session closed for user root
Dec 24 00:04:27 localhost sshd(pam_unix)[6037]: session opened for user root by (uid=0)
Dec 24 00:44:24 localhost root: This is a test message.Please Ignore root