shell 练习题-04

发布于 2018-05-11  85 次阅读


01

题目:

用 shell 打印下面这句话中字母数小于 6 的单词。

Bash also interprets a number of multi-character options.

脚本:

#!bin/bash

for s in Bash also interprets a number of multi-character options.

do

    n=`echo $s | wc -c`

#输出 for 循环获取到的单词,并使用 wc -c 来计算长度

    if [ $n -lt 7 ]

    then

        echo $s

    fi

#判断单词的长度是否小于 7,是的话就输出来,因为 wc 会把结束符也算入内,所以这里使用 7

done

02

题目:

写一个脚本实现如下功能:  输入一个数字,然后运行对应的一个命令。显示命令如下:

"*cmd meau**    1 - date    2 - ls    3 - who    4 - pwd"

当输入 1 时,会运行 date, 输入 2 时运行 ls, 依此类推。

脚本:

#!/bin/bash

echo "*cmd meau**    1 - date    2 - ls    3 - who    4 - pwd"

read -p "Input number:" n

#使用 read -p 可以读取用户输入的内容,这里读取用户输入的内容并赋值给 n

case $n in

#使用 case,判断 n 的值能匹配哪个要求,然后运行对应的命令

1)

    date

    ;;

2)

    ls

    ;;

3)

    who

    ;;

4)

    pwd

    ;;

*)

    echo "input err!"

    ;;

esac

03

题目:

用 shell 脚本实现如下需求:

添加 user_00 – user_09 10 个用户,并且给他们设置一个随机密码,密码要求 10 位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里。

提示:

  1. 随机密码使用命令 mkpasswd
  2. 在脚本中给用户设置密码,可以使用 echo 然后管道 passwd 命令

脚本:

#!/bin/bash

for i in `seq -w 0 09`

#"seq -w 0 09"可以列出 00-09,-w 让序列宽度保持一致,以最大宽度为准

do

    useradd user_$i

#创建无密码的用户

    n=`mkpasswd -l 10 -s 0`

#mkpasswd 用于生成随机密码,-l 指定长度,-s 指定特殊符号个数

    echo "username:user_$i password:$n" >> /tmp/user.txt

    echo -e "$n\n$n" | passwd user_$i

#使用 echo 的-e 参数,可以自动换行输入,可以结合 passwd 命令设置密码

done