bash实战
admin
2023-08-01 04:00:06
0

闲逛中看到如下几个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


相关内容

热门资讯

特朗普:美国尊重中国 【文/观察者网 冯雪】据南华早报7月9日报道,在土耳其举行的北约峰会期间,美国总统特朗普先是表示,上...
龙卷风横扫湖北小镇的2分钟:大... 7月6日傍晚,22岁的周南(化名)骑着电动自行车出门,打算去不远的朋友家借本书。他抬头看了眼阴沉的天...
人民日报:让“文字游戏”式广告... 让“文字游戏”式广告得不偿失(金台锐评)倪 弋《人民日报》(2026年07月09日 第 19 版)引...
特朗普就美军再次袭击伊朗发声 当地时间7月8日晚,美国总统特朗普离开土耳其抵达英国。 他就正在对伊朗进行的打击行动表示,这是“对伊...
美伊再交火,联合国秘书长发声 新华社联合国7月8日电(记者尚绪谦)联合国秘书长古特雷斯的发言人迪雅里克8日表示,古特雷斯对美国和伊...
伊朗将大规模打击美军基地 当地时间今天(7月9日)凌晨,据伊朗努尔新闻网援引一名军方消息人士的话报道,伊朗武装部队导弹部队和无...
美军实施新一轮打击,伊朗南部多... 当地时间7月8日,美国中央司令部表示,在美国总统指示下,美军已开始对伊朗目标实施进一步打击,旨在削弱...
台风里的“巨无霸”,云系大到足... 超强台风“巴威”,越来越近了。截至7月8日23时,超强台风“巴威”(最大风力:17级,约209公里/...
特朗普怒叫“狠狠炸”!伊朗局势... 特朗普总统突然又对伊朗彻底撕破脸,其一连串喊话震惊了全世界。周三早上美军对伊朗发动空袭后,他当天在北...
李在明祝贺挪威队晋级,当场模仿... 综合韩联社等韩国媒体报道,韩国总统李在明8日在土耳其安卡拉出席北约峰会期间,同挪威首相斯特勒举行会晤...