闲逛中看到如下几个bash题目,于是手痒


1、使用for循环在目录下通过随机小写10个字母加固定字符串Xman批量创建10个html文件,名称例如为:


# sh randfile.sh

# ll

total 4

-rw-r--r-- 1 root root 0 Feb 17 16:07 cxriwsivclXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 cxypjcpazqXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 fvkdxxluouXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 mahnrlhyduXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 omhxsjftubXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 pyevqsxrfnXman.html

-rw-r--r-- 1 root root 216 Feb 17 16:06 randfile.sh

-rw-r--r-- 1 root root 0 Feb 17 16:07 rcrecpovdhXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 vmjzedrtapXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 worlmhciqjXman.html

-rw-r--r-- 1 root root 0 Feb 17 16:07 xietooufrmXman.html


实现如下:

#!/bin/bash#arr=(abcdefghijklmnopqrstuvwxyz)for((j=1;j<=10;j++));dostr=for((i=1;i<=10;i++));dostr="$str\${arr[$[$RANDOM%26]]}"donetouch$(evalecho$str)Xman.htmldone

2、将以上文件名中的Xman全部改成gril(用for循环实现),并且html改成大写。

#!/bin/bashforfilein*.html;domv$file$(echo$file|sed's/Xman.html/gril.HTML/');done

结果:

[root@tvvmq40030 t]# ll

total 4

-rw-r--r-- 1 root root 0 Feb 17 16:07 cxriwsivclgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 cxypjcpazqgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 fvkdxxluougril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 mahnrlhydugril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 omhxsjftubgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 pyevqsxrfngril.HTML

-rw-r--r-- 1 root root 216 Feb 17 16:06 randfile.sh

-rw-r--r-- 1 root root 0 Feb 17 16:07 rcrecpovdhgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 vmjzedrtapgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 worlmhciqjgril.HTML

-rw-r--r-- 1 root root 0 Feb 17 16:07 xietooufrmgril.HTML


3、bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)。
I am oldboy teacher welcome to oldboy training class.


结果如下:

[root@tvvmq40030 t]# sh pr.sh

I

am

oldboy

to

oldboy

class.

实现:

#!/bin/bashforiinIamoldboyteacherwelcometooldboytrainingclass.;do[[${#i}-le6]]&&echo$idone


4、请用shell或Python编写一个等腰三角形(triangle.sh),接收用户输入的数字。

例如:

triangle.shPleaseEnteranumber:5*************************


实现:

#!/bin/bashread-p"PleaseEnteranumber:"lineblack(){for((j=1;j<=$1;j++));doecho-n"$2"done}foriin$(seq1$line);doblack$[$line-$i]""black$[$i*2-1]"*"black$[$line-$i]""echodone