第十讲 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
) -
输入命令
sudo cp shell_helloword /usr/local/bin/
将文件 shell_helloword 复制到 PATH 的任意路径中(注意:这里不知道路径的直接复制我打的这句话就行,需要管理员权限) -
然后在终端输入
shell_helloword
-
终端返回:hello world!
-
脚本成功!!!
-
最后试验成功将我们复制进去的东西删掉
sudo rm -rfv /usr/local/bin/shell_helloword
(PS:rm 命令不要乱用,特别是加了 sudo 的,否则删除整个系统就不好了)
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