💡
原文中文,约3000字,阅读约需8分钟。
📝
内容提要
本文介绍了Shell脚本的基本用法,包括变量定义与使用、环境变量管理、参数传递、条件测试和函数定义。强调了当前Shell环境与子Shell执行脚本的区别,以及内置命令和外置命令的使用。
🎯
关键要点
- Shell脚本中,单引号变量不识别特殊语法,双引号变量可以识别特殊语法。
- 每次调用bash/sh解释器执行脚本时,都会开启一个子shell,当前shell变量不会保留。
- 通过source命令或./方式执行脚本,会在当前shell环境加载脚本,保留变量。
- 环境变量可以在命令行中临时创建,但用户退出后会丢失,需修改配置文件以永久生效。
- 使用$0获取脚本文件名,$n获取传给脚本的参数位置,$#获取参数总数,$*和$@获取所有参数。
- 内置命令在系统启动时加载,外置命令需从硬盘读取,内置命令执行效率更高。
- 条件测试使用test命令,支持多种表达式,变量使用时需加双引号。
- 函数定义可以使用多种语法,函数必须先定义后执行,局部变量使用local关键字定义。
❓
延伸问答
Shell脚本中如何定义和使用变量?
在Shell脚本中,使用`name=value`的格式定义变量,单引号变量不识别特殊语法,双引号变量可以识别特殊语法。
如何在Shell中传递参数给脚本?
可以使用`$n`获取传给脚本的参数位置,`$#`获取参数总数,`$*`和`$@`获取所有参数。
Shell脚本中的内置命令和外置命令有什么区别?
内置命令在系统启动时加载,常驻内存,执行效率更高;外置命令需从硬盘读取,加载到内存中。
如何在Shell中进行条件测试?
使用`test`命令或`[`和`]`符号进行条件测试,变量使用时需加双引号。
Shell脚本中如何定义函数?
函数可以使用`function funcName() { ... }`或`funcName() { ... }`的语法定义,必须先定义后执行。
如何在Shell中管理环境变量?
环境变量可以在命令行中临时创建,用户退出后会丢失,需修改配置文件以永久生效。
➡️