<<用法,shell工具

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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值