初学者要外壳



我已经做了很多研究,但是这些信息有些不知所措,我不确定我是否需要在需要采取的步骤中获取正确的信息。

只是一些基本问题,要开始我:

我已经阅读了一些教程,并设法编写了我自己的小脚本,但是我注意到每个人的脚本中的事情都不一样,这使我感到困惑。

由于我真的不知道如何问这些问题,或者我应该问他们哪个顺序,我将卸载一些。

我怎么知道何时需要将.sh附加到文件上?为什么有些脚本与#!/bin/bash相同,但其中一些脚本已将.sh附加到文件上,而有些则不呢?

我想我还有很多问题,但是首先,大的是我刚刚问的两个问题。我只是对我应该如何感到困惑..."声明"我的shell脚本。

感谢您的帮助。

我怎么知道何时需要将.sh附加到文件?

文件扩展名只是您的标志,也许是其他一些"聪明"程序,指示其中有哪种内容。这不是必需的。

为什么某些脚本与#!/bin/bash中的相同,但是其中一些脚本已添加到文件上,有些则不在文件上?

shebang在文件中 X.sh允许它像 $> ./X.sh一样可执行。

和一些建议:采取一些随机问题或任务,也许并不是真的有用,并尝试使用bash解决它。这两个家伙可以为您提供很多帮助。

  1. .sh是可选的(例如,文本文件并非总是具有.txt扩展名)。它确实允许用户将其识别为外壳脚本。

  2. #!/bin/bash称为" Shebang"(或" Hashbang")。Wikipedia上有一个相当不错的条目。

    Shebang仅在执行脚本时才使用。它指定执行脚本时要使用哪些解释器。没有Shebang,默认外壳用于解释脚本。

    如果您的Shebang是#!/bin/bash,并且您像./script.sh一样执行脚本,则等同于在控制台中键入此内容:

    /bin/bash ./script.sh
    

要使您的脚本可执行,您需要

    chmod +x script.sh

Shebang的演示('脚本'打印自身的前五行)

  1. 使用此内容创建文件printmeself

    #!/usr/bin/head -5
    I will be printed
    I will be printed 2
    I will be printed 3
    I will be printed 4
    I won't be printed
    Bye
    
  2. chmod +x printmeself

  3. ./printmeself

  4. ???

  5. 利润

  1. .sh只是一个约定,它可以帮助用户知道它是否是shell脚本,甚至没有打开文件。Shell脚本必须具有此约定,这不是强制性的。但是,建议使用它。
  2. #!/bin/bash是写在文件开头的魔术线,该线告诉必须执行脚本哪个shell。对于不同的外壳,语法不同。因此,当您编写shell脚本时,建议指定您希望使用此脚本执行此脚本的外壳。如果未指定,内核将决定可以是Bourne Shell或与登录外壳相同的外壳。

相关内容

  • 没有找到相关文章

最新更新