shell练习题4】的更多相关文章

整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到到这个文件中. #!/bin/bash # Date: -- # Author: liwei today=$(date +%Y-%m-%d) log_file_name=/var/log/selfdefine/${today}.log /bin/df -lh > $log_file_name 然后再…
需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd num=$(awk -F: 'END{print NR}' $file_name) for i in $(seq 1 $num) do num=$(sed -n "$i"p $file_name | sed 's/[^0-9]//g' | wc -L) if [ $num -eq 1 ];t…
需求如下: 系统logrotate工具,可以完成日志切割.归档.写一个shell脚本实现类似功能. 举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1, 第三天1.log.2,第四天l.log.3,一直到1.log.5 参考解答如下 方法1 #!/bin/bash # rem_file() { [ -f $1 ] && rm $1 } for i in $(seq 5 -1 2) do i2=$(($i-1)) rem_file /data/1.l…
需求如下: 写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或Q退出脚本, 输入其他内容则直接用vim打开该shell脚本. 参考解答如下 方法1 #!/bin/bash cmd="/bin/bash" ed="/usr/bin/vim" if [ $# -ne 1 ];then echo "USAGE:$0 script_name" exit 1 fi $cmd -n $1 if […
需求如下: 写一个shell脚本,把10.0.1.0/24网段在线的ip列出来. 参考解答如下 方法1 #!/bin/bash ip="10.0.1." for i in $(seq 1 254) do ping -c 2 $ip$i &> /dev/null if [ $? -eq 0 ] then echo The host $ip$i is online. else echo The host $ip$i is offline. fi done 方法2 ip=&qu…
一.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. 原文代码为:         Shell   1 2 3 4 5 6 7 8 9 10 #!/bin/bash if  ! grep "^#!" $1 &>/dev/null; then cat >> $1 << EOF #!/bin/bash # Author: #Date & Time: `date +"%F %T"` #Des…
1.编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写 read -p "Please Input A File: " file if [ ! -e $file ];then echo "$file not exits" elif [ -f $file ];then if [ ! -r $file -a ! -w $file ];then echo "User Not read and write" else ech…
1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autocmd BufNewFile *.sh exec ":call SetTitle()" func SetTitle() if expand("%:e") == 'sh' call setline(1,"#!/bin/bash") call setlin…
需求如下: 输入一串随机数字,然后按千分位输出. 例如:输入随机数字为"123456789",输出为123,456,789 参考解答如下 -方法1 [root@lanquark sh]# echo "123456789" | sed '{ :start s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/ t start }' or echo "123456789" | sed -r '{:start;s#(.*[0-9])([0…
需求如下: 有日志access.log,部分内容如下: 127.0.0.1 - - [03/Jul/2018:00:00:01 +0800] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" 127.0.0.1 - - [03/Jul/2018:00:01:48 +0800] "GET /1.php HTTP/1.1" 200 19 "-" "curl/7.29…