创建Shell脚本

本文对比了脚本语言与编译型语言的特点,重点介绍了Shell脚本语言的基本用法,包括如何创建和执行Shell脚本,以及一些常用的Shell命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原创地址: http://blog.youkuaiyun.com/camlot_

1. 脚本语言和编译型语言

什么是编译型语言?

编译型语言指一些从源代码(Source Code)转换成目标代码(Object Code)后便能直接通过计算机(Java通过虚拟机)来执行的语言,一些比较常见的语言包括C, C++, Java, Fortran, Pascal等都是编译型语言。 
编译型语言的优点高效,他们多半运作与底层,擅长处理字节、整型、浮点型或其他机器层级的对象。缺点是编译型语言依赖于平台,例如在windows下编译成的.exe文件在Linux系统下无法使用。

什么是脚本语言?

脚本语言是为了缩短传统的源码->编译->链接->运行(edit->compile->link->run)过程而创建的计算机编程语言。早期的脚本语言常被称为批处理语言或工作控制语言,一些常见的脚本语言有Shell, JavaScript, Python, Perl, R等。 
脚本语言是一种解释型语言,通常被保存在一个文本文件中,执行时不需要编译(文件本身既是源码又是可执行程序),直接由解释器现场解释执行,不产生目标程序(.exe等)。 
脚本语言的优点可移植性强,开发速度快。脚本语言的解释执行不依赖于平台,例如JS语言无论在windows平台还是在unix平台都可以使用。缺点是相对于编译型语言效率较低,它不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费。另外,由于解释语言不产生目标程序,所以源码必须公开给用户,所以一般都是开源的。

2. Shell脚本

①一个简单的Shell语句
$ who  // 输出当前系统用户
ritaliu  console  Aug 12 15:20  // 输出
ritaliu  ttys000  Aug 12 16:17 
  • 1
  • 2
  • 3

上面给出了一个简单的命令行语句,功能是输出当前系统用户,我们可以简单地看出当前有两个用户,但当我们使用一个大型系统登陆的用户很多的时候,想知道有几个用户就需要认真的数一数了,这时,我们使用一个简单的Shell语句就可以避免这个过程,看下面这个语句

$ who | wc -l  // 加入wc -l统计who输出的行数
       2  // 输出
  • 1
  • 2

上面这行语句比之前的语句多出了两部分,一部分是‘|’一个竖杠,这个竖杠的学名叫做管道,如下图所示,它代表的是将竖杠左边的命令的输出作为右边命令的输入。 
管道示意
第二部分是‘wc -l’这条语句代表统计输入文件的行数,除了统计行数它还可以统计字符的数量和单词的数量等

选项对应操作
-c统计输入的字符(characters)数并输出(英文?)
-m统计输入的多字节字符(muti-byte characters)数并输出(中文?)
-l统计输入的行数(line)并输出
-w统计输入的单词(word)数并输出
②创建一个Shell脚本

上面给出了一个简单的Shell脚本语句,之前我们说过,一般的脚本都是写在一个文件里,Shell也不例外,一般,Shell脚本会写入一个后缀为.sh的文件,我们可以根据如下操作进行,创建文件方法并不唯一,你完全可以直接新建一个文件编辑好脚本内容后保存再将其修改为可执行文件。

/*制作一个Shell脚本文件*/
$ cat > example.sh
#! /bin/sh -  // 标明当前文件的解释器路径
who | wc -l  // 输入语句后使用组合键ctrl+d保存并退出文件
$ chmod +x example.sh  // 将当前文件修改为可执行文件
$ ./example.sh  // 执行脚本
       2  // 输出
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

以上的代码执行了创建一个文件->输入文件内容并保存->将文件修改为可执行文件->执行文件的过程,左边带有$的行代表在终端输入的内容。第3、4行代表Shell脚本文件中写入的内容。

cat > example.sh
  • 1

cat命令主要用于三个方面 
(1)创建并写入文件 
- cat > [filename] 新建文件并写入(覆盖原有文件) 
- cat >> [filename] 新建文件并写入(若存在将内容追加到原有文件尾) 
文件写入完成后使用ctrl+d保存并退回终端 
(2)合并文件 
- cat [file1] [file2] > [obj file] 将file1和file2的内容合并到obj file中 
(3)浏览文件内容 
- cat [filename] 在终端显式输出文件的内容

#! /bin/sh -
  • 1

Shell脚本通常一开始都是这样一行语句,这行语句告知Linux内核应该以那个Shell来解释执行当前的脚本,从这条命令可以看到,我们使用的解释器位于是bin下的sh。之后接的’-‘表示没有Shell选项,据说是基于安全上的考虑,可以避免某种程度的欺骗式攻击。

chmod +x example.sh
  • 1

chmod命令可以改变输入文件的类型,当前的+x选项是指将example.sh文件修改为可执行文件,若要修改回来可以使用-x选项。

./example.sh
  • 1

表示执行当前目录下的example.sh文件

以上简单的介绍了Shell脚本语言的创建方法,之后将更深入的介绍脚本语言中的常用命令、语句等。


在Linux中创建shell脚本非常简单,主要是通过文本编辑器(例如nano、vim、emacs等)来编写一个包含一系列Shell命令的文本文件。以下是创建shell脚本的基本步骤: 1. **选择编辑器**: 打开终端,选择一个文本编辑器,比如`nano`, `vi`, 或者 `gedit`。如果你对特定的编辑器有偏好,也可以直接输入它的名字打开,如`nano script.sh`. 2. **新建文件**: 使用编辑器创建一个新的文件,例如: ```bash nano script.sh ``` 或者: ```bash vi /path/to/your/script.sh ``` 3. **编写脚本**: 在打开的文本编辑器窗口中,开始编写你的shell脚本。一个基本的脚本通常包含`#!/bin/bash`作为第一行(称为shebang),表明这是个Bash shell脚本,然后是执行的命令序列,每行一个命令。 例如,如果你想创建一个简单的脚本,打印一条消息,可以写成: ```bash #!/bin/bash echo "Hello, this is a sample shell script!" ``` 4. **保存文件**: 在编辑器中,按下`:wq` (保存并退出) 或 `Esc` 键后输入 `:wq!` (强制保存并退出,忽略未保存的更改提示),然后按回车键保存并关闭文件。 5. **赋予执行权限**: 要让系统能够执行这个脚本,你需要给它执行权限: ```bash chmod +x script.sh ``` 现在你可以运行它了: ```bash ./script.sh ``` 6. **测试和修改**: 测试脚本,如果需要,根据需要修改或增加更多的命令。完成后,每次改变后都要再次设置执行权限以保持更新。 记住,一个好的实践是将复杂的逻辑拆分成函数,这样可以使脚本更模块化、易于理解和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值