第十讲 shell 脚本简介
文章目录
- 第十讲 shell 脚本简介
-
- 一、 shell 脚本简介
-
- shell 脚本是什么
- shell 脚本有什么用
- shell 命令本质
- 创建一个 helloworld 命令
- shell 脚本语言与 c 语言的区别
- 创建一个 shell 脚本
- shell 脚本的启动方式
一、 shell 脚本简介
shell 脚本是什么
shell 脚本与 windows 下的批处理相似,就是将各类命令预先放到一个文件中,方便一次性执行的一个程序文件。百度百科
是由 shell 命令按一定语法组成的文件。
shell 脚本有什么用
- 批处理文件/整合命令
- 软件启动
- 性能监控
- 日志分析
shell 命令本质
内置命令/外部命令
可以通过
type
命令查看命令是否是内置命令
例如:
type cd
返回的是:cd is a shell builtin
type ifconfig
返回的是:ifconfig is /sbin/ifconfig
shell 命令是通过预设的路径去查找命令,命令的路径在 PATH 变量当中,可以通过命令
echo $PATH
可以打印当前的预设的路径
创建一个 helloworld 命令
- 输入命令
创建文件vim shell_helloword.c
- 输入以下代码
#include <stdio.h> int main(void) { printf("hello world!\n"); return 0; }
- 保存退出编辑器
- 编译 shell_helloword.c 文件(
)gcc -o shell_helloword shell_helloword.c
- 输入命令
将文件 shell_helloword 复制到 PATH 的任意路径中(注意:这里不知道路径的直接复制我打的这句话就行,需要管理员权限)sudo cp shell_helloword /usr/local/bin/
- 然后在终端输入
shell_helloword
- 终端返回:hello world!
- 脚本成功!!!
- 最后试验成功将我们复制进去的东西删掉
(PS:rm 命令不要乱用,特别是加了 sudo 的,否则删除整个系统就不好了)sudo rm -rfv /usr/local/bin/shell_helloword
shell 脚本语言与 c 语言的区别
shell 脚本语言是一种解释型语言,c 语言是一种编译型语言
有关编译型和解释性语言区别可以看这:编译型语言和解释型语言区别,总的来说就是编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件,之后如果要运行时,直接使用编译结果,而解释型语言是代码在执行时才被解释器一行行动态翻译和执行。
Linux shell 解释器
查看 Linux 内的 shell 解释器可以用命令
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
创建一个 shell 脚本
- 创建文件 shellscript.sh (
)vim shellscript.sh
- 输入以下代码
#!/bin/bash echo "hello word!\r\n"
- 保存并退出文件
- 给文件添加可执行权限(
)sudo chmod +x shellscript.sh
- 在终端输入命令
执行脚本文件./shellscript.sh
- 得到输出结果
hello word!\r\n
- 脚本创建完成
shell 脚本的启动方式
- 当程序运行
./shellscript.sh
- 指定解释器运行
/bin/bash shellscript.sh
/bin/rbash shellscript.sh
- source 命令 和
source shellscript.sh.
. shellscript.sh