闲逛中看到如下几个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=( a b c d e f g h i j k l m n o p q r s t u v w x y z )
for((j=1;j<=10;j++));do
str=
for((i=1;i<=10;i++));do
str="$str\${arr[$[$RANDOM%26]]}"
done
touch $(eval echo $str)Xman.html
done
2、将以上文件名中的Xman全部改成gril(用for循环实现),并且html改成大写。
#!/bin/bash
for file in *.html ; do
mv $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/bash
for i in I am oldboy teacher welcome to oldboy training class. ; do
[[ ${#i} -le 6 ]] && echo $i
done
4、请用shell或Python编写一个等腰三角形(triangle.sh),接收用户输入的数字。
例如:
triangle.sh
Please Enter a number:5
*
***
*****
*******
*********
实现:
#!/bin/bash
read -p "Please Enter a number: " line
black() {
for((j=1;j<=$1;j++)); do
echo -n "$2"
done
}
for i in $(seq 1 $line); do
black $[$line - $i] " "
black $[$i * 2 -1 ] "*"
black $[$line - $i] " "
echo
done
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。