shell学习实例一

企业面试题1:
使用for循环在/oldboy目录下批量创建10个文件,名称依次为:
oldboy-1
oldboy-2
oldboy-3
......
oldboy-10
提示:以后再考大家文件前缀也要随机,结尾是数字序列。
例如随机创建10个文件,包含oldboy字符串,结尾是1-10,扩展名是html。
例如:afds_oldboy_1.html,khadf_oldboy_2.html

脚本如下:

#!/bin/bash

#if [ ! -d "./oldboy" ]

# then mkdir ./oldboy

#fi

#下面的语句也一样能达到上面判断的作用

[ ! -d ./oldboy ] && mkdir ./oldboy

for i in `seq 1 10`

 do

  touch ./oldboy/oldboy-${i}

done

或者直接使用下面的命令:touch oldboy-{1..10}

企业面试题2:
将以上文件名中的oldboy全部改成linux(用for循环实现)。
提示:以后再考大家把文件名中的oldboy批量替换成linux,并且扩展名改成大写。

不通用:

#!/bin/bash

for i in `seq 1 10`

do

 mv ./oldboy/oldboy-${i} ./oldboy/chen-${i}

done

比较通用:

#!/bin/bash

if [ -d ./oldboy ]

then

  echo "if"

  cd ./oldboy

else

 echo "else"

 mkdir ./oldboy

 cd ./oldboy

fi

for i in `ls jun*`

do

 mv $i `echo $i | sed "s/jun/chen/g"`

done

注意sed命令的使用,可以替换字符

或者直接使用下面的命令:rename chen jun chen*

注意rename命令的使用,rename from to file,man rename,按q退出

企业面试题3:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码不能相同)。
数字加0的思路:http://oldboy.blog.51cto.com/2561410/788422

#!/bin/bash

for i in `seq 1 3`

do

 useradd chen${i} && echo "chen${i}" | passwd --stdin chen${i}

done

passwd --stdin使密码从标准输入输入。

企业面试题4:
批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。
生成8位随机数:echo $RANDOM`openssl rand -base64 8` | md5sum | cut -c 1-8

参考:

shell企业面试及企业实战题专家精讲

企业shell常见面试题及企业实战案例深入浅出讲解

时间: 2024-11-08 20:44:23

shell学习实例一的相关文章

2014年7月21号 (shell学习一)

实例一: 第一步:使用vi创建一个文件**.sh(vi的使用这里暂不介绍) #!/bin/bash 注:这是指明有那个shell来解释下边的命令 cd /var/log  #切换目录到/var/log下(#是shell中的注释符) cat /dev/null > messages #这里用到啦输入输出重定向这里是输入重定向,/dev/null是linux中的设备,俗称无低洞. cat /dev/null > wtmp echo "Logs cleaned up." 这里是输

Shell 学习(三)--流程控制

目录 Shell 学习(三)--流程控制 1 if判断 2 case 语句 3 for循环 4 while 循环 Shell 学习(三)--流程控制 1 if判断 基本语法 if [ 条件判断式 ];then 程序 fi 或者 if[ 条件判断式 ] then 程序 elif[ 条件判断式 ] then 程序 fi 注意事项:(1) [ 条件判断式 ],中括号和条件判断式之间必须要有空格.(2) 推荐使用第二种方式 ? 应用实例 案例: 编写一个shell程序,请输入参数,大于等于60,则输出"

shell学习之tr命令

tr命令不接受指定的文件参数,而只是对标准输入进行翻译, tr是translate的简写,亦即翻译,需要注意的是,它不能翻译句子,只能翻译单个字符. 首先,定义变量:     [[email protected]]#A=1,,2,,,3,,,4,,,5 下面以示例对该命令以及其常用选项进行介绍. 示例: 1.  无选项设置情况     [[email protected]]# echo $A | tr  ',' ' '         1 2   3   4   5     [[email pr

【转】十分有用的linux shell学习总结

在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中 予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参 阅和查

shell学习总结之自定义函数

shell学习总结之自定义函数 Myfun (){ echo patams1 is $1 echo -n "now i is $i " ! [ "$i" ] && exit ; echo jj return '1' } myf=$(Myfun); echo myf Myfun 12 unset Myfun Myfun echo 'the end !'$myf 别人的 #! bin/bash # ----------------------------

Struts2+Spring+Ibatis用户注册、登录、管理入门学习实例源码下载

原文:Struts2+Spring+Ibatis用户注册.登录.管理入门学习实例源码下载 源代码下载地址:http://www.zuidaima.com/share/1550463735532544.htm Struts2+Spring+Ibatis用户注册.登录.管理入门学习实例源码下载 项目截图: jar包和sql文件都在源码包中. 运行截图: 用户注册页面: 用户管理页面:

第八章 shell学习之循环和结构化命令

for循环 1. 列表for循环 for variable in {list}  #有些像C++/CLR中的for each do ... done 如: 1. [[email protected] tmp]# cat b.sh #! /bin/bash for i in 1 2 3 4 5      #1 2 3 4 5等价于{1..5} do echo $i done [[email protected] tmp]# ./b.sh 1 2 3 4 5 2. [[email protected

Linux下shell编程实例

1. 判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下 read -p "input a file:" filename if [ -b $filename -o -c $filename ] then cp $filename /dev/ fi 2.编写一个脚本,进行简单的减法运算,要求提示输入变量 #!/bin/bash read -p "input a number:" num1 read -p "input another nu

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数