欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Shell脚本编程

程序员文章站 2024-02-19 23:58:04
...

1、Shell脚本是什么?

Shell脚本语言为过程式语言,解释运行,依赖于外部程序文件来运行。Shell脚本是命令的堆积,但很多命令不具有幂等性,需要用程序逻辑来判断运行条件是否满足,以避免其运行中发生错误。但并不是所有命令执行失败,都会导致脚本运行终止,命令执行失败,如果产生严重错误,该严重错误指,脚本会exit,任何时候shell脚本或shell解释器遇到exit命令就会终止,或我们使用某种判断机制将其强行终止,或者脚本运行过程中出现语法错误,也可能终止。

2、Shell脚本编辑器

文本编辑器:nano
行编辑器:sed (一次只处理一行,不会占用整个屏幕)
全屏幕编辑器:nano, vi, vim (打开后全屏幕都是编辑器)

[[email protected] exercise]# nano fstab
其中,^o表示保存,^x表示退出,^为Ctrl键;

3、如何写shell脚本?

脚本文件的第一行顶格,给出shebang,即解释器路径,用于指明解释执行当前脚本的解释器程序文件。常见的解释器如下:

#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl

4、运行脚本

(1)赋予执行权限,并直接运行此程序文件。

chmod +x /PATH/TO/SCRIPT_FILE
/PATH/TO/SCRIPT_FILE

(2)直接运行解释器,将脚本以命令行参数传递给解释器程序,脚本不需要执行权限。

bash /PATH/TO/SCRIPT_FILE

脚本中的空白行会被解释器忽略。脚本中,除了shebang,余下所有以#开头的行都会被视作注释行而被忽略,shell脚本的运行是通过运行一个子shell进程实现的。

5、Shell脚本示例

写一个脚本,实现如下功能:
1)显示/etc目录下所有以大写p或小写p开头的文件或目录本身;
2)显示/var目录下的所有文件或目录本身,并将显示结果中的小写字母转换为大写后显示;
3)创建临时文件/tmp/myfile.XXXX。

#!/bin/bash
echo "Show some	under /etc"
ls -d /etc/{p*,P*}       或者 ls -d /etc/[pP]*
echo                     显示一个空白行         
echo -e "\n"             显示两个空白行
									
echo "Translate	lower to upper"
ls -d /var/* | tr 'a-z' 'A-Z'
echo
									
echo "Create a temp file"
mktemp /tmp/myfile.XXXX