文章目录

  • 1、创建并运行第一个 shell 脚本
  • 2、将 shell 脚本转换为 bash 脚本
  • 3、为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?
  • 4、将 shell 脚本添加到 PATH(以便它可以从任何目录运行)

1、创建并运行第一个 shell 脚本

首先创建一个名为 scripts 的新目录,它将托管我们所有的 bash 脚本。

mkdir scripts
cd scripts

现在在这个“脚本目录”中,使用 cat 命令创建一个名为 hello.sh的新文件:

cat > hello.sh

通过在终端中键入以下内容,在其中插入以下行:

echo 'Hello, World!'

Ctrl+D 将文本保存到文件中,同时从 cat 命令中出来。

你还可以使用基于终端的文本编辑器,如 VimEmacsNano。如果你使用的是桌面 Linux,还可以使用图形文本编辑器(如 Gedit)将文本添加到此文件中。

基本上你是在使用echo 命令来打印“Hello World”。你可以直接在终端中使用此命令,但在本测试中,你将通过 shell 脚本运行此命令。

现在使用 chmod 命令使文件 hello.sh 可执行,如下所示:

chmod u+x hello.sh

最后,通过在 hello.sh 前面加上“bash”来运行你的第一个 shell 脚本:

bash hello.sh

你就会看到Hello, World!打印在屏幕上。

这是在上面看到的所有步骤的屏幕截图:

2、将 shell 脚本转换为 bash 脚本

Bash是“Bourne-Again shell”的缩写,它只是 Linux 中许多可用 shell 的一种。

shell 是一个命令行解释器,它接受并运行命令。如果你以前运行过任何 Linux 命令,那么你已经使用过 shell。当你在 Linux 中打开终端时,你已经在运行系统的默认 shell。

Bash 通常是大多数 Linux 发行版中的默认 shell。这就是为什么 bash 通常是 shell 的同义词。Shell 只是一个程序,而 bash 是它的一个实现。还有其他这样的 shell 程序,如 kshzsh等。如果你安装了其他 shell,你也可以使用它来代替 bash

shell 脚本通常具有几乎相同的语法,但有时也会有所不同。例如,数组索引在 Zsh 中从 1 开始,而不是在 bash 中从 0 开始。如果为Zsh shell编写的脚本有数组,则它在 bash 中将无法正常工作。

为了避免这种错误,你应该告诉解释器你的 shell 脚本是为 bash shell 编写的。你是怎样做的?你可以用shebang来实现这一点。

3、为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?

#!/bin/bash”这一行被称为shebang 行,在某些文献中,它被称为hashbang 行,这是因为它以两个字符hash '#'bang '!' 开头。

#! /bin/bashecho 'Hello, World!'

当你在脚本的最顶部包含“#!/bin/bash”行时,系统知道你想使用 bash 作为脚本的解释器。因此,你现在可以直接运行 hello.sh 脚本,而无需在其前面加上 bash

使用 #!/bin/bash 表示该脚本是 bash shell 脚本,无论系统上正在使用什么 shell,都应该使用 bash 作为解释器运行。如果你使用的是 zsh 特定的语法,你可以通过添加 #! /bin/zsh 作为脚本的第一行。

#!/bin/bash 之间的空格无关紧要。你也可以使用 #!/bin/bash

4、将 shell 脚本添加到 PATH(以便它可以从任何目录运行)

前面使用 ./hello.sh 来运行脚本;如果省略前导 ./

Bash 认为你正在尝试运行名为 hello.sh 的命令。当你在终端上运行任何命令时,shell 就在存储在 PATH 变量中的一组目录中查找该命令。

可以使用 echo 查看该 PATH 变量的内容:echo $PATH

冒号字符 (:) 分隔每次运行命令时 shell 扫描的每个目录的路径。

echocatLinux 命令可以从任何地方运行,因为它们的可执行文件存储在 bin 目录中。bin 目录包含在 PATH 中。当你运行命令时,系统会检查 PATH 以查找它应该寻找的所有可能位置,以找到该命令的可执行文件。

如果你想从任何地方运行你的 bash 脚本,就像它是一个常规的 Linux 命令,需要将你的 shell 脚本的位置添加到 PATH 变量中。

首先,获取脚本目录的位置(假设在同一目录中),使用 PWD 命令:

pwd

使用 export 命令将脚本目录添加到 PATH 变量。

export PATH=$PATH:/home/ay2021/scripts

运行 hello.sh

如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)相关推荐

  1. 创建组groupadd_如何在Linux中创建组– groupadd命令

    创建组groupadd In this tutorial, we will learn how to create a Group in Linux using groupadd command. 在 ...

  2. linux建立文件的符号链接,如何在Linux中创建符号链接[完整指南]

    Linux中的符号链接是什么,为什么使用它? 符号链接(也称为符号链接或软链接)是一种特殊类型的文件,它只是指向另一个文件或目录,就像Windows中的快捷方式一样,创建符号链接就像为实际文件创建别名 ...

  3. idea写java_IDEA中编写并运行shell脚本的实现

    IEDA中的bashsupport插件支持在IDEA中编写shell脚本文件,有友好的代码格式,支持自动补全,检查错误,并且配置完之后,还可以在IEDA中直接运行shell脚本.下面将一步一步演示插件 ...

  4. linux命令行运行c程序,如何在Linux中编写和运行C程序

    Linux正在成为开发人员的编程天堂,成为开源和免费操作系统. Turbo C编译器已经是一种编译程序的旧方法,所以让程序员转向Linux以获得新的编程环境. 在本文中,我们将解释如何编写,编译和运行 ...

  5. 如何在 Linux 中创建一个共享目录

    作为系统管理员,你可能有一个特定目录,你希望为 Linux 服务器上的每个用户授予读/写访问权限.在本指南中,我们将回顾如何在 Linux 中对特定目录(共享目录)上的所有用户启用写访问. 这要求设置 ...

  6. Linux怎么给命令创建别名,如何在Linux上创建别名和Shell函数 | MOS86

    使用别名和Bash Shell函数创建自己的Linux命令. 驯服重复性任务,截断冗长的进程,并使用您经常使用且难以记住的选项配置标准命令. 别名和Shell脚本是Linux和类似Unix的操作系统中 ...

  7. linux usb 重启电脑,技术|如何在 Linux 中创建 USB 启动盘来拯救 Windows 用户

    WoeUSB 可以在 Linux 中制作 Windows 启动盘,并帮助你的朋友解锁他们罢工的机器. 人们经常要求我帮助他们恢复被锁死或损坏的 Windows 电脑.有时,我可以使用 Linux US ...

  8. linux命令界面输入不了密码,如何在 Linux 中不输入密码运行 sudo 命令

    sudo命令允许受信任的用户作为另一个用户运行程序,默认情况下是root用户.如果您在命令行上花费了大量时间,那么sudo将会是您一直使用的命令之一. 通常,要授予sudo访问权限,请将用户添加到su ...

  9. 教你如何在linux中创建个人用户主页

    1.在配置文件中开启个人用户主页的功能 2.创建个人主页+在该用户中创建保存该用户主页的数据目录文件+对该目录文件进行授权 3.重新启动httpd服务 4.访问个人主页 5.出现无法访问,需要过滤相关 ...

最新文章

  1. spring之旅第四篇-注解配置详解
  2. 给按钮、静态文本 CListCtrl等添加功能提示(tollTip)功能
  3. 浙江大学计算机保研条件_看了就想录取的简历长啥样?保研简历千万别踩这些坑!...
  4. java服务限流_SpringCloud微服务:Sentinel哨兵组件,管理服务限流和降级
  5. SQLSEVER 中的那些键和约束
  6. 跨平台导PDF,结合wkhtmltopdf很顺手
  7. Hadoop1和Hadoop2的区别是什么?
  8. 暮色森林模组_《我的世界》暮色森林VS天启之境 到底谁才是冒险模组一哥
  9. 7 行为型模式之 - 状态模式
  10. Struts2中Struts.xml的作用
  11. Java研发方向如何准备BAT技术面试
  12. selenium无头浏览器
  13. 《PMP学习笔记》1.3 五大过程组十大知识领域
  14. Origin8.1完全安装教程,安装包pojie包
  15. 2021年N1叉车司机考试总结及N1叉车司机操作证考试
  16. uniapp 获取商米本机SN码
  17. 从全球顶级数据库大会 SIGMOD 看数据库发展趋势
  18. 【Rosalind】Counting Point Mutations
  19. 通过MERL100计算Blender Disney BRDF参数
  20. Arduino教程-11. PIR传感器

热门文章

  1. 企业微信公众号运营引流的三大法宝
  2. ceph-pg状态详解
  3. 生活如何才能不匆忙?
  4. 软件测试基础知识大全【乐搏TestPRO】
  5. snmp中mib文件解析
  6. 【知识】快乐物质:多巴胺和内啡肽(内酚酞)的区别
  7. B,BL指令的使用范围
  8. sklearn代码11 1-熵
  9. Android下载图片并添加图片水印
  10. iOS 显示SVG文件的方法