1.显示字体的颜色为红色=
[root@shell_example mnt]# echo -e "\033[31mhello\033[0m"
[root@shell_example mnt]# echo -e "\033[40;31mhello\033[0m"
编写一个shell脚本:
[root@shell_example mnt]# vim apache_port.sh
脚本内容如下:
#!/bin/bash
[ -z "$1" ] && {
echo -e "\033[31mError: Please input port number Apache Server\033[0m"
exit
}
sed "/^Listen/cListen $1" -i /etc/httpd/conf/httpd.conf
systemctl restart httpd &>/dev/null
port=`netstat -antlupe | grep httpd | awk '{print $4}' | cut -d : -f 4`
[ "$1" -eq "$port" ] && {
echo -e "\033[32mPort has change to $1 \033[0m"
}||{
echo -e "\033[31mError:Change port failed\033[0m"
}
不输入任何内容时:
[root@shell_example mnt]# sh apache_port.sh
输入非法内容时:
[root@shell_example mnt]# sh apache_port.sh hh
输入其他端口号时:
[root@shell_example mnt]# sh apache_port.sh 8080
检测端口号是否与设置的相同
[root@shell_example mnt]# netstat -antlp | grep httpd
[root@shell_example mnt]# netstat -antlp | grep httpd | awk '{print $4}'
[root@shell_example mnt]# netstat -antlp | grep httpd | awk '{print $4}' | cut -d : -f 4
(1)编辑一个shell脚本
[root@shell_example mnt]# vim file.sh
脚本内容如下:
#!/bin/bash
for i in $(seq 1 10)
do
echo $i
done
[root@shell_example mnt]# sh file.sh
(1)建立一个user_file文件,写入三个用户
[root@shell_example mnt]# vim user_file
[root@shell_example mnt]# cat user_file
[root@shell_example mnt]# vim pass_file
[root@shell_example mnt]# cat pass_file
[root@shell_example mnt]# vim user_create.sh
脚本内容如下:
#!/bin/bash
Max_Line=`sed -n '$=' $1`
for i in $(seq 1 $Max_Line)
do
USERNAME=`sed -n "${i}p" $1`
PASSWORD=`sed -n "${i}p" $2`
id $USERNAME &> /dev/null && {
echo "$USERNAME is exist"
}||{
useradd $USERNAME
echo $PASSWORD | passwd --stdin $USERNAME &>/dev/null && echo $USERNAME CREATE
}
done
[root@shell_example mnt]# sh user_create.sh user_file pass_file
[root@shell_example mnt]# userdel -r user1
[root@shell_example mnt]# sh user_create.sh user_file pass_file
当没有给文件时,输出“Please show me a file after script",当文件不存在时,输出"文件名称 is not exist",当文件的类型是其他类型时,输出每个文件的文件类型名称
编写一个shell脚本:
[root@shell_example mnt]# vim check_file.sh
脚本内容如下:
#!/bin/bash
[ -z "$1" ] && {
echo "Error: Please show me a file after script"
exit
}
[ -e "$1" ] || {
echo "$1 is not exist"
exit
}
[ -L "$1" ] && {
echo "$1 is a link file"
exit
}
[ -f "$1" ] && {
echo "$1 is a common file"
exit
}
[ -d "$1" ] && {
echo "$1 is a directory"
exit
}
[ -c "$1" ] && {
echo "$1 is a char file"
exit
}
[ -b "$1" ] && {
echo "$1 is a block file"
exit
}
[ -S "$1" ] && {
echo "$1 is a socket file"
exit
}
没有输入任何文件时:
[root@shell_example mnt]# sh check_file.sh
当输入的文件是链接文件时:
[root@shell_example mnt]# sh check_file.sh file
当输入的是一个目录时:
[root@shell_example mnt]# sh check_file.sh /mnt
当输入的文件不存在时:
[root@shell_example mnt]# sh check_file.sh file2
当输入的文件是一个块设备时:
[root@shell_example mnt]# sh check_file.sh /dev/sda
当输入的文件是一个字符设备时;
[root@shell_example mnt]# sh check_file.sh /dev/pts/0
当输入的文件是一个套接字时:
[root@shell_example mnt]# sh check_file.sh /var/lib/mysql/mysql.sock
/var/lib/mysql/mysql.sock is a socket file
编辑westos文件:
[root@shell_example mnt]# vim westos
[root@shell_example mnt]# cat westos
hahaLLdodoEH
[root@shell_example mnt]# tr 'a-z' 'A-Z' < westos
HAHALLDODOEH
[root@shell_example mnt]# tr 'A-Z' 'a-z' < westos
hahalldodoeh