shell for循环

24 道 shell 脚本面试题

穿精又带淫゛_ 提交于 2019-11-26 17:53:59
想要成为中高级phper, shell 脚本是需要掌握的,它有助于你在工作环境中自动完成很多任务。 如下是一些面试过程中,经常会遇到的 shell 脚本面试问题及解答: Q:1 Shell脚本是什么、它是必需的吗? 答:一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。 Q:2 什么是默认登录shell,如何改变指定用户的登录shell 答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。示例如下所示: # chsh <用户名> -s <新shell> # chsh linuxtechi -s /bin/sh Q:3 可以在shell脚本中使用哪些类型的变量? 答:在shell脚本,我们可以使用两种类型的变量: 系统定义变量 用户定义变量 系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过“set”命令查看。 用户变量由系统用户来生成和定义,变量的值可以通过命令“echo $<变量名>”查看。 Q:4 如何将标准输出和错误输出同时重定向到同一位置? 答:这里有两个方法来实现: 方法一: 2>&1 (如# ls /usr/share/doc >

用shell编写小九九乘法表程序

隐身守侯 提交于 2019-11-26 16:59:19
1.使用for循环 运行结果: 2.方法二:for循环 运行结果: 备注: 1. echo -n 的意思是不自动换行,因为在linux shell中 echo到最后一个字符时会自动换行的,所以echo -n取消了shell的自动换行 2. echo -e "\n" 的意思是把字符串中某些字符当成特殊字符处理如: \t 制表符 \n换行符 \b 删除前一个字符 \f 换行但光标仍旧停留在原来的位置 \r 光标移至行首,但不换行 3. $[j*i] 在shell中表示j*i;但是在linux shell中不能直接写成j*i;必须写成$[j*i]或者$[$j*$i] 或者 $(( $j * $i )) 最后一种写法注意空格,否则会报错的 来源: https://www.cnblogs.com/yyl6/p/11327867.html

Shell编程

烈酒焚心 提交于 2019-11-26 14:58:47
1.shell程序格式 #! /bin/bash 首行#!指定shell编译器 # program 除首行的#外,其他的都表示注释 # read var1 read var2 if[ $var1 -eq $var2 ] then echo "$var1 is equal to $var2" elif[ $var1 -gt $var2 ] then echo "$var1 is great than $var2" else echo "$var1 is less then $var2" fi 2.shell语法 2.1 #!首行指定shell编译器 2.2 local用来定义局部变量 2.3 函数定义 function func(){ } 2.4 case语句 case “$...”in ...) ...;; ...) ...;; 2.5 条件语句 if[空格+表达式+空格] then ... fi 其他形式:if-then-else-fi if-then-else-if-then-else...-if-if else if 可以写作 elif 2.6 循环语句 # 1 # for var in [list] do ... done # 2 # while[ ... ] do ... done # 3 # util[ ... ] do ... done 转载于:https://www

Shell脚本实战案例

孤街浪徒 提交于 2019-11-26 04:32:36
一.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: 解答: 【文本如下】 [ -d /oldboy ] || mkdir /oldboy cd /oldboy echo $(pwd) && \ for i in {1..10} do filename=$(uuidgen|tr '0-9' 'a-z'|cut -c 1-10 ) touch ${filename}_oldboy.html done 二.企业Shell面试题2:批量改名特殊案例 将以上面试题19.1.1中结果文件名中的oldboy字符串全部改成oldgirl(最好用for循环实现),并且将扩展名html全部改成大写。 解答: 【文本如下】 dir=/oldboy cd $dir && \ for i in $(ls *html) do rn=$(echo $i|cut -c -10) mv $i ${rn}_oldgir.HTML done 三.企业Shell面试题3:批量创建特殊要求用户案例 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机数,要求字符和数字等混合)。 解答: 【文本如下】 [ -d /oldboy ] || mkdir