23. 编写第一个 Shell 脚本

2019-02-05  本文已影响36人  独木舟的木

[TOC]

什么是 Shell 脚本

一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行文件中的所有命令。

怎样编写一个 Shell 脚本

创建和运行 Shell 脚本的步骤:

  1. 使用文本编辑器编写脚本。 Shell 脚本就是普通的文本文件。
  2. 使脚本文件可执行。设置脚本文件的权限来允许其可执行。
  3. 把脚本放置到 shell 能够找到的地方。当没有指定可执行文件明确的路径名时,shell 会自动地搜索某些目录,来查找此可执行文件。为了最大程度的方便,我们会把脚本放到这些目录当中。

脚本文件格式

  1. 编辑脚本文件:hello_world
#!/bin/bash
# This is our first script.
echo 'Hello World!'
  1. 修改文件权限:
$ ls -l hello_world
-rw-r--r-- 1  me    me      63  2009-03-07 10:10 hello_world
$ chmod 755 hello_world
$ ls -l hello_world
-rwxr-xr-x 1  me    me      63  2009-03-07 10:10 hello_world

对于脚本文件,有两个常见的权限设置:

  • 权限为 755 的脚本,则每个人都能执行,
  • 权限为 700 的脚本,只有文件所有者能够执行。

脚本文件位置

为了运行脚本,必须指定脚本文件明确的路径。

$ ./hello_world

如果没有给出可执行程序的明确路径名,那么系统每次都会搜索一系列的目录,来查找此可执行程序。

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

修改 .bashrc 文件中包含下面一行文本:

export PATH=~/bin:"$PATH"

使修改后的 .bashrc 文件立即生效:

$ . .bashrc

# 同上
$ source .bashrc

注意:在 Ubuntu 系统中,如果存在 ~/bin 目录,当执行用户的 .bashrc 文件时, Ubuntu 会自动地添加这个 ~/bin 目录到 PATH 变量中。所以在 Ubuntu 系统中,如果我们创建 了这个 ~/bin 目录,随后退出,然后再登录,一切会正常运行。

然后把你的脚本文件放在:/home/YourName/bin 目录下。

脚本文件应该放在哪里

更多的格式技巧

严肃认真地写脚本的目标——方便维护。
使脚本容易阅读和理解是一种方便维护的方法。

1. 长选项名称

# 1.在命令行中输入选项时,为了减少输入,短选项更受欢迎。
$ ls -ad

# 2.在脚本文件中,长选项能提供可读性。
$ ls --all --directory

2. 缩进和行继续符

当使用长命令时,通过把命令在几个文本行中展开,可以提高命令的可读性。
使用行继续符(反斜杠 - 回车符序列)和缩进,可以让一个复杂命令的逻辑性更清楚地描述给读者。

❎ 不适合的示例:

$ find playground \( -type f -not -perm 0600 -exec
chmod 0600 ‘{}’ ‘;’ \) -or \( -type d -not -perm 0711 -exec chmod
0711 ‘{}’ ‘;’ \)

✅ 推荐的示例:

find playground \
    \( \
        -type f \
        -not -perm 0600 \
        -exec chmod 0600 ‘{}’ ‘;’ \
    \) \
    -or \
    \( \
        -type d \
        -not -perm 0711 \
        -exec chmod 0711 ‘{}’ ‘;’ \
    \)

3. 为书写脚本文件配置 vim 编辑器

通过把这些命令(没有开头的冒号字符)添加到你的 ~/.vimrc 文件中,这些改动会永久生效。

上一篇 下一篇

猜你喜欢

热点阅读