什么是 Shell 脚本?
一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样。
怎样编写一个 Shell 脚本
为了成功地创建和运行一个 shell 脚本,我们需要做三件事情:
- 编写一个脚本。 Shell 脚本就是普通的文本文件。所以我们需要一个文本编辑器来书写它们。最好的文本 编辑器都会支持语法高亮,这样我们就能够看到一个脚本关键字的彩色编码视图。语法高亮会帮助我们查看某种常见 错误。为了编写脚本文件,vim,gedit,kate,和许多其它编辑器都是不错的候选者。
- 使脚本文件可执行。 系统会相当挑剔不允许任何旧的文本文件被看作是一个程序,并且有充分的理由! 所以我们需要设置脚本文件的权限来允许其可执行。
- 把脚本放置到 shell 能够找到的地方 当没有指定可执行文件明确的路径名时,shell 会自动地搜索某些目录, 来查找此可执行文件。为了最大程度的方便,我们会把脚本放到这些目录当中。
脚本文件格式
为了保持编程传统,我们将创建一个 “hello world” 程序来说明一个极端简单的脚本。
所以让我们启动 我们的文本编辑器,然后输入以下脚本并保存名为 hellow:
#!/bin/bash
# This is our first script.
echo 'Hello World!'
num=2
echo “this is the ${num}nd”
1 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
2 # 注释
3 echo 向屏幕输出一句话
4 定义变量为 2
5 输出变量num
类似于许多命令,这也在命令行中起作用:
dongdong@dongdong:~/桌面$ echo 'Hello World!' # This is a comment too
Hello World!
dongdong@dongdong:~/桌面$ Hello World!
可执行权限
下一步我们要做的事情是让我们的脚本可执行。使用 chmod 命令,这很容易做到:
dongdong@dongdong:~/桌面$ chmod 755 hellow
对于脚本文件,有两个常见的权限设置;权限为755的脚本,则每个人都能执行,和权限为700的 脚本,只有文件所有者能够执行。注意为了能够执行脚本,脚本必须是可读的。
脚本文件位置
设置权限后执行脚本
dongdong@dongdong:~/桌面$ ./hellow
Hello World!
为了能够运行此脚本,我们必须指定脚本文件明确的路径。如果我们没有那样做,我们会得到这样的提示:
bash: hello_world: command not found
PATH 环境变量及其它在系统 查找可执行程序方面的作用。
回顾一下,如果没有给出可执行程序的明确路径名,那么系统每次都会 搜索一系列的目录,来查找此可执行程序。这个/bin 目录就是其中一个系统会自动搜索的目录。 这个目录列表被存储在一个名为 PATH 的环境变量中。这个 PATH 变量包含一个由冒号分隔开的目录列表。 我们可以查看 PATH 的内容:
dongdong@dongdong:~/桌面$ echo $PATH
/opt/ros/indigo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
如何添加新的地址
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc