Bash Shell 中 常见的面试题:(理论基础 及 脚本编写)


 

        此链接通往 Bash Shell 编程学习的目录导航 ,从入门到放弃,感兴趣的可以去看看:


理论基础篇:

 

①、如何向脚本内传递参数!
不要看见这个问题就感觉懵,就不知道是啥意思!换句话说就是: 如何在脚本内调用外部的参数!

答:使用位置变量 : $1$2...$n

 

②、[ ] 和 [[ ]] 的区别! 以及 整数运算符 使用什么?
[ ] : bash 的内部命令!与 test 命令是等同的!

[[ ]] :是 bash 程序语言的关键字;并不是一个命令!

证明如下:

root@zhengzelin:~\# type [ 
[ is a shell builtin
root@zhengzelin:~\# type [[ 
[[ is a shell keyword

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

区别: [ ] 逻辑测试使用: -a(双方都为 true,结果才为 true) 
                       -o(一方为 true,结果就为 true)
                       
      [[ ]] 逻辑测试使用: && (双方都为 true,结果才为 true)
                        || (一个为 true,结果就为 true)
                        
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

整数运算符:[ ]  [[ ]] 都使用相同的:

-eq : 等于
-ne : 不等于

-lt : 小于
-le : 小于等于

-gt : 大于
-ge : 大于等于

注意: [ ] 中使用 <> 的时候,必须使用转义字符: \< 或 \> ,因为 [ 是一个内部命令! 
< : 标准输入
> : 标准重定向输出(覆盖原内容)

而 [[ ]] 却不需要!

 

③、() 和 { } 的共同点 及 区别:
共同点: 两个括号都可以用做 : 命令组


区别:
1、() 会开一个 子shell进程 来执行() 内的命令!而 {
    } 在当前shell进程执行其中命令!

2、() 内的命令中间使用";"隔开,末尾不需要";"  并且 () 与 cmd 之间不需要 空格隔开! 

   eg: (cmd1;cmd2)    {
    cmd1;cmd2;}    # 看开头的空格
   
   {
   } 中 命令之间使用 ";" 隔开,结尾需要;
  
如果你的命令组中 有 exit 命令,你使用 exit 是想退出脚本,建议您使用 {
    },因为你使用 () 只会退出 () 开启的那个 子shell !

 

④、列举几个 环境变量,并且 说出他们的作用:
$PATH :  命令路径

$Shell: 当前 shell 类型

$SHLVL : 当前 shell 嵌套层次!(就是有几个shell进程)

$USER: 当前用户

$HOME : 当前用户的家目录

$? : 查看上一条命令是否执行成功(0为成功,非0为失败)

$HISTSIZE : 历史命令条数

$LANG : 当前系统语言

$PS1 : 登录系统时候的提示符!

 

⑤、关于 变量 的命令:
赋值: 1、局部变量赋值: varname=值;  
      2、全局变量赋值: export varname=值 或 declare x varname=值
      3、只读变量赋值: readonly varname=值 或 declare i varname=值
      

查看变量:  set : 查看所有已定义的变量
          
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值