当前位置: 首页 > 编程笔记 >

linux shell(.sh)脚本编写和运行入门

韦安顺
2023-03-14
本文向大家介绍linux shell(.sh)脚本编写和运行入门,包括了linux shell(.sh)脚本编写和运行入门的使用技巧和注意事项,需要的朋友参考一下

编写第一个shell脚本

在gedit中编写.sh格式的文件,保存为a.sh。

代码:
#! /bin/bash # employ bash shell
player1=xiaoming # define a player1
player2=ken 
echo "Game start! $player1 $player2" # echo is used to printf in terminal

在终端调用脚本,定位到目录,然后输入:

bash a.sh

看到打印结果如上所示。

编写第一个if/else脚本

编写的if/else如下:
if和 ; 之间的代码

ls -l a.sh 

是用来判断当前的目录下是否存在a.sh这个文件。if和else的基本格式如下所示,

if command ; then
code1
else
code2
fi

在终端调用的结果如下,可以看到输出了

ls return true

再看一个if/else脚本

如下脚本,if/else格式和上面格式一致,重点看下 if 和 ;间的那个命令,命令开始以 [,后面有4个参数 $1,=,me,]

输出的结果如下所示:

用 = 来判断输入的字符串是否等于me。其他的常用判断参数见下图:

看一个for循环

for循环的格式如下脚本所示:

#! /bin/bash # employ bash shell
for num in 1 2 3 4 5 six
do 
  echo "num=$num"

for(( num=1; num<7; num++)) # method2
do 
 echo "num=$num"
done

while循环

while循环的基本格式如下:

#! /bin/bash

i=7
j=10
while [ $i -lt $j ] 
do
  echo "num1 = $i, num2=$j"
  ((i++))
done

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 对不起,英语不好。。 我有这样的php文件: 这是剧本: 现在当加载文件时。对于浏览器,脚本可以工作,但只执行wget和sed命令,cp不工作。。不复制文件!如果我手动运行脚本到终端(Debian 8),所有cmd都会执行。。。问题在哪里?谢谢约勒

  • 在docker文件中运行sh脚本时,出现以下错误: /上传。上海:5:/上载sh:sudo:找不到/上载sh:21: /上载sh:换人不好 DockerFile 有什么想法吗?

  • 编写HTTP/1.1和HTTP/2.0脚本 有时,我们希望编写一个快速的脚本而不会遇到创建类的麻烦。addons机制具有一种速记方式,可以将模块作为一个整体视为一个addon对象。这使我们可以将事件处理程序函数放在模块作用域中。例如,下面是一个完整的脚本,它向每个请求添加标头。 def request(flow): flow.request.headers["myheader"] = "v

  • 当 Gradle 执行一个脚本时,它会将这个脚本编译为实现了 Script 的类. 也就是说所有的属性和方法都是在 Script 接口中声明的,由于你的脚本实现了 Script 接口,所以你可以在自己的脚本中使用它们.

  • 问题内容: 感谢您收看这个问题。 所以我的问题与如何在docker-compose up指令上运行脚本的最佳实践有关。 目前,我正在主机和容器之间共享一个卷,以使脚本更改对主机和容器均可见。与监视脚本轮询配置文件中的更改类似。 该脚本必须根据预定义规则对主机进行更改。 所以我的问题是: 我如何才能在docker-compose up指令上甚至从服务的dockerfile上启动此脚本,以便每当容器启

  • 一个 ASP 脚本能执行的任务从简单如显示一个变量的值到复杂如发送一条 SQL 语句给数据库。本节讨论许多脚本编写人员想完成的通用任务,例如处理一个 HTML 表格返回的信息或调试一个脚本。如果您是脚本语言的新手或只是 ASP 的新手,请认真阅读 使用脚本语言 中的主题来学习如何创建一个 ASP 页以及 ASP 命令的基本语法。 本节包括: 发送内容给浏览器:解释如何控制返回给浏览器的页。 发送脚