文章目录
此链接通往 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 : 查看所有已定义的变量