如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)_创建、运行shell脚本的步骤(1)

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/bash

echo '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

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值