专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 职业指南 分享五个shell面试题整理

分享五个shell面试题整理

更新时间:2022-12-16 16:19:20 来源:星辉 浏览1034次

1.shell中定义局部变量

定义局部变量可以使用local,多在函数中应用

1)shell中定义的变量都是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止

2)函数定义的变量是可以被定义成local的,其作用域只限于函数内

2.在执行脚本时bash和source的区别

1、source命令用法:

source 文件名

作用:在当前bash环境下读取并执行FileName中的命令。该fifilename文件可以无"执行权限"

注:该命令通常用命令“.”来替代。

source(或点)命令通常用于重新执行刚修改的初始化文档。

source命令(从 C Shell 而来)是bash shell的内置命令。

点命令,就是个点符号,(从Bourne Shell而来)。

source的程序主体是bash,脚本中的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效

2、sh,bash的命令用法:

sh/bash 文件名

作用:打开一个子shell来读取并执行FileName中命令。该fifilename文件可以无"执行权限"

注:运行一个shell脚本时会启动另一个命令解释器.

每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.

这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.

shell脚本也可以启动他自已的子进程.这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务. 在ubuntu中sh只是bash的一个链接。由于是在子shell中执行,脚本设置的变量不会影响当前shell。

3、./的命令用法:

./文件名

作用:打开一个子shell来读取并执行FileName中命令。该fifilename文件需要"执行权限"

注:运行一个shell脚本时会启动另一个命令解释器.

每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.

这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.

shell脚本也可以启动他自已的子进程.

这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.由于是在子shell中执行,脚本设置的变量不会影响当前shell。

3.哪些方式可以将标准输出和错误输出重定向到文件?

命令 &> 文件名

命令 > 文件名1 2> 文件名2

命令 > 文件名 2>&1

命令 &>> 文件名命令 >> 文件名1 2>> 文件名2

命令 >> 文件名 2>&1

4.正则表达式符号*、+、?、[]、[^]、{n} 分别代表什么含义?

* 表示匹配的前面的字符出现了任意次(包括0次)

表示匹配的前面的字符出现了至少1次(1次或多次)

? 表示匹配前面的字符出现了0次或1次

[] 表示集合,匹配集合中的任意单个字符

[^] 表示对集合取反

{n} 表示精确匹配前面的字符出现了n次

5.日志切割脚本
 

[root@localhost ~]# vim /usr/local/nginx/logbak.sh #新建脚本名为

logbak.sh

\#!/bin/bash #解释器

date=`date +%Y%m%d` #自定义date变量,值等于当前日期

logpath=/usr/local/nginx/logs #自定义logpath变量,值等于

Nginx日志所在路径

mv $logpath/access.log $logpath/access-$date.log #把当前access日志重命名

mv $logpath/error.log $logpath/error-$date.log #把当前error日志重命名

kill -USR1 $(cat $logpath/nginx.pid) #向nginx主进程发USR1信

号,重新打开生成日志文件,如不发送USR1,Nginx将会继续写入改名之后的日志

接下来把写好的脚本写入计划任务,自动执行。

[root@localhost ~]# crontab -e #打开计划任务表

01 02 * * 6 /usr/local/nginx/logbak.sh #每周六凌晨2:01运行脚本进行

日志切割

以上就是“分享五个shell面试题整理”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注星辉Java官网。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>