首页 > 系统相关 >Linux Shell脚本入门教程系列之(二)第一个shell脚本

Linux Shell脚本入门教程系列之(二)第一个shell脚本

时间:2023-03-29 15:00:55浏览次数:39  
标签:脚本 bin shell 入门教程 sh Shell test


本文是Linux Shell脚本系列教程的第(二)篇,更多shell教程请看:Linux Shell脚本系列教程

通过上一篇教程的学习,相信大家已经能够对shell建立起一个大体的印象了,接下来,我们通过一个最简单的脚本来继续深入对shell的学习。

新建shell脚本

新建一个文件,扩展名为sh(sh代表shell),或者其他任意名字,其实扩展名并不影响脚本执行,见名知意就好,这里用sh是为了便于分辨。

在你新建的文件中输入以下内容:



#!/bin/bash
echo "Hello World !"


 

“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一个Shell来执行。

echo命令用于向窗口输出文本。

运行shell脚本

运行Shell脚本有两种方法。

1)作为可执行程序

将上面的代码保存为test.sh,并 cd 到相应目录:



chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本



 

注意,一定要写成./test.sh,而不是test.sh。

 

运行其它二进制的程序也 一样,直接写test.sh,linux系统会去PATH里寻找有没有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH里,你的当前目录通常不在PATH里,所以写成test.sh是会找不到命令的,要用. /test.sh告诉系统说,就在当前目录找。

 

通过这种方式运行bash脚本,第一行一定要写对,好让系统查找到正确的解释器。

2)作为解释器参数

这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,如:


/bin/sh test.sh
/bin/php test.php

 

这种方式运行的脚本,不需要在第一行指定解释器信息,写了也没用。

再看一个例子。下面的脚本使用 read 命令从 stdin 获取输入并赋值给 PERSON 变量,最后在 stdout 上输出:



#!/bin/bash
# Author : linuxdaxue.com
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"


 

运行脚本:


chmod +x ./test.sh
$./test.sh
What is your name?
linuxdaxue
Hello, linuxdaxue
$

总结

看到这里同学们是不是对shell脚本有了更深刻的理解呢?那就赶紧行动起来吧,按照上面的方法自己实践一遍,如果有不懂的地方及时发现,及时解决,这样才能真正的将知识变为自己的能力。

 

标签:脚本,bin,shell,入门教程,sh,Shell,test
From: https://blog.51cto.com/u_8895844/6157038

相关文章

  • 0基础shell脚本ping主机网络连通性实战讲解
    本节通过一个简单脚本,使朋友们了解脚本的基本用法,及编写方法。1、先简化版,实现本机ping主机是否连通,将结果存在一个文件#!/bin/bashifping-c3${i}>/dev/null2>&1th......
  • 【bat批处理脚本命令】bat脚本命令的基本使用(保姆级图文+实现代码)
    bat批处理脚本的基本使用(图文并茂)bat脚本命令的注释bat脚本命令的换行bat脚本命令的if判断1.bat脚本命令的注释作为高端程序员,不写注释不是好习惯,先学如何写注释写......
  • [shell] 读取多行输出到数组/遍历awk输出的某一行
    效果想要达到的效果为,使用awk切分输出后,遍历每一行的输出。以下以ls-lh命令示例,遍历输出ls-lh命令的第一列输出。实际使用替换ls-lh演示1.存放到数组后遍历数组第......
  • SQL脚本的9大坑
    前言系统上线时,非常容易出问题。即使之前在测试环境,已经执行过SQL脚本了。但是有时候,在系统上线时,在生产环境执行相同的SQL脚本,还是有可能出现一些问题。有些小公司,SQL......
  • C#快捷编译并发布的批处理脚本
    发布批处理发布批处理::生成新的版本setyear=%date:~2,2%setmonth=%date:~5,2%setday=%date:~8,2%setVERSION=%year%%month%%day%setNEWVERSION=1.0.0.%VERS......
  • hbase shell 基础和常用命令详解
    HBase是一个分布式的、面向列的开源数据库,源于google的一篇论文《bigtable:一个结构化数据的分布式存储系统》。HBase是GoogleBigtable的开源实现,它利用HadoopHDFS作为其......
  • zabbix报警推送至企业微信脚本
    #!/usr/bin/python2.7#_*_coding:utf-8_*_importrequests,sys,json,logging,timeimporturllib3urllib3.disable_warnings()reload(sys)sys.setdefaultencoding('utf-8......
  • lshell escape
    lshell(LimitedShell)escape lshell是表示当前用户的shell是受限的,只能执行几个指定的指令可参考Lshell-aldeid 先确定自己是否被受限user:~$helpcdclear......
  • linux shell基础--终端显示字体背景和字体颜色\033[0;30m
    ANSI标准ANSI标准规定了一种所有终端共享的指令集,并要求用ASCII的数字字符传递所有数值信息,用于控制linux终端上的光标位置、颜色和其他选项。在文本中嵌入确定的字节序列......
  • python一个带参数脚本调用另一个带参数的脚本 问题
    python  a.pymain:args=argget.parse_args(args=[])b.funa() pythonb.pydeffuna():args=argget.parse_args() 当两个py文件都需要arg参数的......