shell脚本的作用
它是用户与计算机硬件之间的接口。Shell可以解释并执行用户输入的命令,同时也可以调用其他程序和脚本来完成特定的任务。Shell作为操作系统的命令行解释器,提供了用户与计算机之间的交互界面,可以执行命令,控制环境,通过管道和重定向实现数据传输,同时也提供了脚本编程的能力。管道:可以使用管道符号(|)将多个命令连接起来,让前一个命令的输出作为后一个命令的输入。函数定义:可以定义和使用函数,可以将一系
shell的作用
Shell是操作系统中的一种命令行解释器,它是用户与计算机硬件之间的接口。Shell可以解释并执行用户输入的命令,同时也可以调用其他程序和脚本来完成特定的任务。Shell可以直接与操作系统内核交互,通过执行系统调用来操作文件、进程和网络等系统资源。
Shell作为操作系统的命令行解释器,提供了用户与计算机之间的交互界面,可以执行命令,控制环境,通过管道和重定向实现数据传输,同时也提供了脚本编程的能力。
常见的shell解释器
linux中查看本机shell种类
cat /etc/shells
- bash:基于GUN的框架下发展的shell
- csh:类似C语言的shell
- tcsh:整合了csh 提供了更多功能
- sh:已经被bash替换
- nologin:让用户无法登录
bash(/bin/bash)是目前大多数 Linux 版本采用的默认 shell。
bash的特性:
-
命令自动补全:在输入命令时,按下Tab键会自动补全命令或路径。
-
命令历史记录:可以使用上下箭头键来浏览以前执行过的命令。
-
通配符扩展:可以使用通配符来匹配文件名。
-
管道:可以使用管道符号(|)将多个命令连接起来,让前一个命令的输出作为后一个命令的输入。
-
变量和环境变量:可以定义和使用变量,还可以设置和修改环境变量。
-
脚本编写:可以编写脚本文件,用来自动执行一系列命令。
-
多重重定向:可以使用重定向符号(> 和 <)来重定向命令的输入和输出。
-
条件判断和循环:可以使用条件语句来进行条件判断,还可以使用循环语句进行循环操作。
-
函数定义:可以定义和使用函数,可以将一系列命令封装在一个函数中,方便调用和复用。
-
文件和目录操作:可以对文件和目录进行创建、删除、移动、复制等操作。
shell 脚本的用途和应用场景
用途:
- 自动化常用命令
- 执行系统管理和故障排除
- 创建简单的应用程序
- 处理文本或文件
应用场景:
- 重复性操作
- 交互性任务
- 批量事务处理
- 服务运行状态监控
- 定时任务执行
shell脚本的编写规范和执行方法
脚本命名规范:基本名称,以.bash为结尾。
shell 脚本创建:
vim demo.bash
-------------------------
#!/bin/bash
#this is a shell test!
echo hello.Shell!
相对路径的执行方式:
//为文件增加执行权限
chmod +x demo.bash
//相对路径方式进行执行./demo.bash
绝对路径的执行方式:
/root/demo.bash
使用解释器名称直接使用脚本
bash demo.bash
“.”和source 启动脚本
source demo.bash 或 . demo.bash
错误排查
bash -n 脚本名称 //只检查语法错误,不执行脚本。定位的错误行不清晰。
bash -x 脚本名称 //显示每个命令的执行过程,方便发现逻辑错误。
shell中的括号
小括号 ():
子shell:用于创建子shell,也称为子进程,子shell中的命令在一个子进程中执行,不会影响当前shell的环 境。
(command1; command2)
命令替换:可以使用小括号执行命令替换,将命令的输出嵌套到一个变量中。
variable=$(command)
中括号 [] :
条件测试: 中括号用于条件测试,可以用于字符串比较、数值比较等。
if [ condition ]; then
fi
数组: 中括号也用于定义数组。
my_array=["value1" "value2" "value3"]
大括号 {} :
代码块: 大括号可以用于创建代码块,将一组命令组合在一起。
{
command1
command2
}
扩展: 大括号还可以用于进行扩展,生成一系列字符串。
echo {1..5}
文件重定向: 大括号还可以用于文件重定向。
{ command1; command2; } > output.txt
如有错误给孩子提醒一下,感谢观看!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)