zoukankan      html  css  js  c++  java
  • 编写第一个 Shell 脚本

    什么是 Shell 脚本?

    一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样。

    怎样编写一个 Shell 脚本
    为了成功地创建和运行一个 shell 脚本,我们需要做三件事情:

    1. 编写一个脚本。 Shell 脚本就是普通的文本文件。所以我们需要一个文本编辑器来书写它们。最好的文本 编辑器都会支持语法高亮,这样我们就能够看到一个脚本关键字的彩色编码视图。语法高亮会帮助我们查看某种常见 错误。为了编写脚本文件,vim,gedit,kate,和许多其它编辑器都是不错的候选者。
    2. 使脚本文件可执行。 系统会相当挑剔不允许任何旧的文本文件被看作是一个程序,并且有充分的理由! 所以我们需要设置脚本文件的权限来允许其可执行。
    3. 把脚本放置到 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
    
  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/7396949.html
Copyright © 2011-2022 走看看