1
|
eg:DAY=Sunday
|
1
|
echo $DAY 即可
|
1
|
echo ${DAY}Morning
|
1
2
3
4
5
6
|
$#:表示命令行中位置参数的数量。
$*:表示所有位置参数的内容。
$?:表示命令执行后返回的状态,用户检查上一个命令的执行是否正确。在Linux中,命令推出状态为
0
表示命令执行正确,任何非
0
值的表示命令执行错误。
$$:表示当前进程的进程号。
$!:表示后台运行的最后一个进程的进程号。
$
0
:表示当前执行的进程的进程名。
|
1
2
3
|
chmod a+x /opt/ftpclean.sh
crontab -e
30
17
* *
5
/opt/ftpclean.sh
|
1
2
3
|
chmod a+x /opt/dbbak.sh
crontab -e
55
23
*/
3
* * /opt/dbbak.sh
|
1
2
3
|
[ -f /etc/hosts ]
echo $?
0
//返回值为0,表示上一步测试的条件成立。
|
1
2
3
4
|
[ -e /media/cdrom/Server ] && echo
"YES"
// 无输出表示该目录不 存在
[ -e /media/cdrom ] && echo
"YES"
YES
|
1
2
3
4
5
6
|
-eq:第一个数等于(Equal)第二个数。
-ne:第一个数不等于(Not Equal)第二个数。
-gt:第一个数大于(Greater Than)第二个数。
-lt:第一个数小于(Lesser Than)第二个数。
-le:第一个数小于或等于(Lesser or Equal)第二个数。
-ge:第一个数大于或等于(Greater or Equal)第二个数。
|
1
2
3
4
|
who | wc -l
5
[ `who | wc -l` -le
10
] && echo ”YES"
YES
|
1
2
3
4
5
6
|
df -hT | grep ”/boot“ | awk
'{print $6}'
12
%
BootUsage=`df -hT | grep ”/boot
" | awk '{print $6}' | cut -d "
%" -f
1
`
echo $BootUsage
12
[ $BootUsage -gt
95
] && echo
"YES"
//无输出表示未超标
|
1
2
3
4
|
read -p
"Location: "
FilePath
Location: /etc/inittab
[ $FilePath =
"/etc/inittab"
] && echo
"YES"
YES
|
1
2
|
[ $LANG !=
"en.US"
] && echo $LANG
zh_CN.UTF-
8
|
1
2
3
4
5
6
|
touch zero.file
[ -z `cat zero.file` ] && echo
"yes"
yes
echo
"something"
> zero.file
[ -z `cat zero.file` ] && echo yes
//无输出
|
1
2
3
4
|
echo $USER
root
[ $USER = “teacher” ] || echo
"Not teacher"
Not teacher
|
1
2
|
[ -f /etc/rc.d/rc.local ] || [ -f /etc/init.d/rc.local ] && echo "yes“
yes
|
1
2
|
[ ! -x ”/etc/profile
" ] && echo "
No x mode."
No x mode.
|
1
2
3
4
|
echo $USER $SHELL
root /bin/bash
[ $USER = ”root
" ] && [ $SHELL = "
/bin/bash
" ] && echo "
yes"
yes
|
1
2
3
4
5
6
7
|
vi chklog.sh
#!/bin/bash
LogFile=
"/var/log/messages"
if
[ -f $LogFile ] ; then
wc -l $LogFile
fi
sh chklog.sh
//sh是bash的符号链接
|
1
2
3
4
5
6
7
8
9
|
[root@master ~]# vi mkbak.sh
#!/bin/bash
read -p
"What is your directory:"
Bakdir
if
[ -d $Bakdir ] ; then
echo
"$Bakdir already exist."
else
echo
"Bakdir is not exist,will make it."
mkdir $Bakdir
fi
|
1
2
3
4
5
6
7
8
9
|
[root@localhost ~]# vim chkuser.sh
#!/bin/bash
UserNum=`who |wc -l`
if
[ $UserNum -gt
3
] ; then
echo
"Alert , too many login users ( Total: $UserNum )."
else
echo
"Login users:"
who | awk
'{print $1,$2}'
fi
|
1
2
3
4
5
6
7
8
9
10
11
|
[root@localhost ~]# vim chkportmap.sh
#!/bin/bash
pgrep portmap &> /dev/
null
if
[ $? -eq
0
]; then
echo
"protmap service is running."
elif
[ -x
"/etc/rc.d/init.d/portmap"
]; then
service portmap start
else
echo
"no portmap script file."
fi
|
1
2
3
4
5
6
7
8
9
10
|
vi chkmysql.sh
#!/bin/bash
service mysqld status &> /dev/
null
if
[ $? -ne
0
]; then
echo
"At time:`date`:Mysql Server is down."
>> /
var
/log/messages
service mysqld restart
fi
chmod u+x chkmysql.sh
crontab -e
*/
5
* * * * /root/chkmysql.sh
|
1
2
3
4
5
6
|
vi showday.sh
#!/bin/bash
for
TM
in
"Morning"
"Noon"
"Evening"
do
echo
"The $TM of the day."
done
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
vi chkfileown.sh
#!/bin/bash
DIR=
"/opt"
//设置检查的目标目录
LMT=
100
//设置文件数量的限制值
ValidUsers=`grep
"/bin/bash"
/etc/passwd | cut -d
":"
-f
1
`
//找出使用bash的系统用户列表
for
UserName
in
$ValidUsers
do
Num=`find $DIR -user $UserName | wc -l`
//统计每个用户拥有的文件数
if
[ $Num -gt $LMT ] ; then
echo
"$UserName have $Num files."
fi
done
sh chkfileown.sh
root have
20998
files
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@localhost ~]# vim sumint.sh
#!/bin/bash
read -p
"Input a number (>1):"
UP
i=
1
Sum=
0
while
[ $i -le $UP ]
do
Sum=`expr $Sum + $i`
i=`expr $i +
1
`
done
echo
"The sum of 1-$UP is : $Sum"
[root@localhost ~]# sh sumint.sh
Input a number (>
1
):
50
The sum of
1
-
50
is
:
1275
|
1
2
3
4
5
6
7
8
9
|
[root@localhost ~]# vim add20users.sh
#!/bin/bash
i=
1
while
[ $i -le
20
]
do
useradd stu$i
echo
"123456"
| passwd --stdin stu$i &> /dev/
null
i=`expr $i +
1
`
done
|
1
2
3
4
5
6
7
8
|
[root@localhost ~]# vim del20users.sh
#!/bin/bash
i=
1
while
[ $i -le
20
]
do
userdel -r stu$i
i=`expr $i +
1
`
done
|