shell练习题1

练习一:写一个脚本
       1.设定变量FILE的值为/etc/passwd
       2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么
        形如:(提示:LINE=`wc -l /etc/passwd | cut -d" " -f1`)
         Hello,root,your UID is 0.
       3.统计一个有多少个用户
程序如下:
#!/bin/bash
file="/etc/passwd"
line=` wc -l $file|cut -d" " -f1 `
for i in ` seq 1 $line `;do
userid=` head -$i $file| tail -1 |awk -F ":" ‘{print $3}‘`
username=` head -$i $file| tail -1 |awk -F ":" ‘{print $1}‘`
echo "hello,$username!your uid is $userid"
done
echo "There are $line users"
时间: 2024-10-17 09:19:53

shell练习题1的相关文章

shell练习题:使用for循环批量修改文件扩展名

shell练习题:使用for循环批量修改文件扩展名 说明:(1)在linux下批量修改文件名,将下图所示命令中的"_linux"去掉. (2)使用for循环脚本. 思路:本题的基本解题思路,先进行单个文件的改名,然后再用循环实现批量改名,这是比较常规的做法,也可以用rename专业改名工具. 方法一: 说明:使用cut.sed工具 脚本如下: #!/bin/bash cd /test for i in `ls|grep .*.jpg` do mv $i `echo $i |cut -d

shell 脚本之 shell 练习题汇总

整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到到这个文件中. 1 #!/bin/bash 2 # Date: 2016-12-22 3 # Author: liwei 4 5 today=$(date +%Y-%m-%d) 6 log_file_name=/var/log/selfdefine/${today}.log 7 /bin/df -l

bash编程:Shell练习题

bash编程:练习题 1. 写一个脚本:如果某路径不存在,则将其创建为目录:否则显示其存在,并显示内容类型 #!/bin/bash # baseurl=/var/tmp/testdir if [ -e $baseurl ]; then echo "file is no exists." else mkdir -p $baseurl file $baseurl fi 2. 写一个脚本,完成如下功能:判断给定的两个数值,孰大孰小:给定数值的方法:脚本参数,命令交互 #!/bin/bash

shell 练习题01:列出使用最多的命令是哪些并且将这些命令输入到chy1.txt中

需求:列出使用最多的命令是哪些并且将这些命令输入到chy1.txt中 思路:我们的命令都是存在了历史文件/root/.bash_history 这个文件里面,这里需要将用到的命令进行排序 [[email protected] shell]# vim history.sh  #!/bin/bash #this is liechu history zuiduodmingling sort /root/.bash_history |uniq -c |sort -nr |head >/tmp/chy1.

Shell练习题(2)

(1)监控80端口写一个脚本,判断本机的80端口是否开启着,如果开启着什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知你自己.脚本写好后,可以每一分钟执行一次,也可以写一个死循环的脚本,30s检测一次. #! /bin/bash [email protected] if netstat -lnp |grep ':80' |grep -q 'LISTEN'; then     exit else     /usr/local/apache2/bin/apachectl re

shell 练习题02 一个文件里将内容三行显示为一行

要求: 一个文件里将内容三行显示为一行 思路:是将第二行的内容,第三行的内容依次附加到第一行中,这样三行的内容就能变为一行,如果不够三行自动融为一行,具体如下 [[email protected] shell]# cat /tmp/chy.txt  1 2 3 4 g 6 8 (查看chy.txt的内容) [[email protected] shell]# vim yihang.sh #!/bin/bash #this is san hang bian wei yi hang sed 'N;N

30道shell练习题

1  先测试"/etc/vsftpd"."/etc/hosts"是否为目录,并通过"$?"变量查看返回状态值,据此判断测试结果. [[email protected] ~]#  [ -d /etc/vsftpd ] [[email protected] ~]# echo $? 1 [[email protected] ~]#  [ -d /etc/hosts ] [[email protected] ~]# echo $? 1 2  测试&quo

shell练习题

1.命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的返回状态为0:如果测试结果为假,则该命令的返回状态为1.(与C语言的逻辑表示正好相反) 2.  -eq(等于) -ne(不等于) -lt(小于) -le(小于等于) -gt(大于) -ge(大于等于) 它们的操作对象是整数或者取值为整数的变量. 3. -a(逻辑与) -o(逻辑或) !(逻辑或) &&和||用于连接两个命令,而-a.-o仅用于在测试表达式中连接两个测试条件. 4.1~100之间的求和 (1)递归 运行

shell练习题讲解

写一个脚本,计算100以内所有的奇数的和以及所有偶数的和,分别显示出来#! /bin/bashsum1=0for i in `seq 1 2 100`do sum1=$[$sum1+$i]doneecho $sum1 sum2=0for j in `seq 2 2 100`do sum2=$[$sum2+$j]doneecho $sum2 写一个脚本,利用RANDOM生成10个随机数,并且找出最大值和最小值 for i in `seq 1 10`do n[$i]=$RANDOM echo ${n

Shell练习题(1)

(1)请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2017-07-05.log, 并且把磁盘的使用情况写到到这个文件中,(不用考虑cron,仅仅写脚本即可)! #! /bin/bash d=`date +%F` logfile=$d.log df -h > $logfile (2)统计日志 有日志1.log,内容如下: 日志片段: 112.111.12.248 - [25/Sep/2013:16:08:31 +0800]formula-x.haotui.co