命令行参数
位置参数可用 $1 $2 ${10} $n 进行读取
$* 和 $@ 代表所有位置参数
$0 代表脚本名称
$# 代表位置参数的数量
数组
IPTS = ( 192.168 .1.100 192.168 .1.101 192.168 .1.102 )
echo ${IPTS[ @] }
echo ${IPTS[ @] }
echo ${IPTS[ 0] }
运算符
+ - * / ** %
expr 4 + 5
v_num1 = ` expr 4 = 5 `
(( a = 10 ))
(( a = 4 + 5 ))
(( a++ ))
echo $(( 10 + 20 ))
退出与退出状态
判断命令
[ -f /etc/passwd ]
test -f /etc/passwd
[ -x 1 .sh ]
[ -d /etc/ ]
[ -e /etc/ ]
[ 5 -gt 4 ] 或 [ [ 5 > 4 ] ]
[ 5 -ge 4 ] 或 [ [ 5 >= 4 ] ]
[ 5 -le 4 ] 或 [ [ 5 <= 4 ] ]
[ 5 -eq 4 ] 或 [ [ 5 = 4 ] ]
[ "abc" = "abc" ]
[ "abc" != "abc" ]
if 判断语句
if [ $UID = 0 ]
then
echo " root user "
fi
if [ $USER = root ]
then
echo " root user "
else
echo $USER
fi
if [ $USER = root ] ; then
echo " root user "
elif [ $USER = centos7 ] ; then
echo " centos7 user "
else
echo " other user "
fi
if [ $USER = root ] ; then
echo " root user "
if [ -x 1 .sh ] ; then
. 1 .sh
fi
fi
case 语句
case "$1 " in
"start" | "START" )
echo "start server......"
; ;
"stop" | "STOP" )
echo "stop server......"
; ;
*)
echo "Usage: $0 must be in {stop|start}"
; ;
esac
for 循环语句
for i in { 1 .. 9 }
do
echo $i
done
touch 1 .t 2 .t 3 .t
for filename in ` ls *.t`
do
mv $filename $( basename $filename .t) .txt
done
while 循环语句
a = 1
while [ $a -lt 10 ] ; do
(( a++ )) ;
echo $a ;
done
while : ; do
echo always;
done
while [ $# -ge 1 ] ; do
echo "do something"
shift
done
break 控制语句
for num in { 1 .. 9 }
do
if [ $num -eq 5 ] ; then
break ;
fi
echo $num
done
continue 控制语句
for num in { 1 .. 9 }
do
if [ $num -eq 5 ] ; then
continue ;
fi
echo $num
done
批量插入
1 . Ctrl + v 进入可视化块模式
2 . 向下移动
3 . Shift + i 进入插入模式
4 . 输入要插入的字符
5 . 点击两下 Esc
一次性计划任务
at 时间
atq
周期性计划任务(注意命令执行路径)
crontab -e
crontab -l
* * * * * /usr/bin/date >> /tmp/date.txt
* * * * 1 /usr/bin/date >> /tmp/date.txt
* * * * 1,5 /usr/bin/date >> /tmp/date.txt
* * * * 1 -5 /usr/bin/date >> /tmp/date.txt
* * 7 7 * /usr/bin/date >> /tmp/date.txt
15 18 7 7 * /usr/bin/date >> /tmp/date.txt
15 18 7 7 1 -5 /usr/bin/date >> /tmp/date.txt
30 3 * * 1 /usr/bin/date >> /tmp/date.txt
0 3 15 * * /usr/bin/date >> /tmp/date.txt
tail -f /var/log/cron
ls /var/spool/cron/用户名