怎么在linux中写shell脚本文件,如何在Linux下编写一个简单的Shell脚本_瞻云云的博客-程序员秘密

技术标签: 怎么在linux中写shell脚本文件  

在了解了Linux终端和其搭配的基本Shell(默认为bash)的基础下,我们就可以在终端中用vi/vim编辑器编写一个shell的脚本程序了

Shell既为一种命令解释解释工具,又是一种脚本编程语言,用各种shell下的命令和一些特定的语法结构就可以组成一个Shell脚本程序,shell脚本程序是一个纯文本文件,但在执行之前不需要任何操作。我们可以通过写一些脚本来让我们更方便的对文件进行操作,以及做一些shell的测试。

#学习本篇知识需了解简单的vi,chmod,以及vi编辑器的使用

1:打开终端,进入保存程序的目录,命令行输入 vi test.sh(Shell脚本程序的后缀为.sh)

2:在Shell编程中,#后的字符可以作为注释,所以必要的我们需要在程序中写上一些注释,这确实可以让你的程序上升一个档次,还须注意的是需要在程序第一行申明#!/bin/bash(csh,zsh..), 使用#!用来表明我们的程序是用bash(这里用的)来执行

3:这里编写了一个简易的脚本程序如下:

052dd16af2518388a597a2fe642f3171.png

程序部分

c7c7640e2c4b2e4e0fd1c9cabc490992.png

4:编写后可直接运行,./表示当前目录,输入./test.sh执行,会发现没有权限(permission denied),然后我们给自己授个权,就可以运行了,但是因为此脚本为一个纯文本文件,在执行之前相对于其他程序的执行少了编译这一步,所以会显得有一点迟钝。

0a632022d5ba72b915bfd9e099af4356.png

65d0f120891bbc0ffdf073ca9956503d.png

一个个小的Shell脚本就成功了。

如果想进一步加强脚本的内容,大家可以多多了解Shell下的一些命令,以及Shell语言的一些语法风格,上述的程序中只用到了一些简单的命令。

0b1331709591d260c1c78e86d0c51c18.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35379749/article/details/116551262

智能推荐

黑马程序员--第一阶段4.多线程--第12天_黑马程序第一阶段第四章案例_阿_良的博客-程序员秘密

-------------------- android培训、java培训、期待与您交流!--------------------  线程间的通信  要求存入一条数据,打出一条数据:class Producer implements Runnable{    Q q;    public Producer(Q q)    {       this

基于位置服务(Location Based Service)_iteye_10189的博客-程序员秘密

基于位置的服务(Location Based Service,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。LBS英文全称为Location Based Se...

Expert 诊断优化系列------------------内存不够用么?_weixin_34080903的博客-程序员秘密

现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高。软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治。开发人员解决数据问题基本又是搜遍百度各种方法尝试个遍,可能错过诊断问题的最佳时机又可能尝试一堆方法最后无奈放弃。    怎么样让琐事缠身的程序维护人员,用最快的方式解决数据库出现的问...

WindowKiller_win killer_无·法的博客-程序员秘密

Project1.vbpType=ExeForm=frmMain.frmReference=*/G{00020430-0000-0000-C000-000000000046}#2.0#0#C:/WINDOWS/system32/stdole2.tlb#OLE AutomationObject={3B7C8863-D78F-101B-B9B5-04021C009402}#1.2#0;

Nginx 的recv() failed 错误解决一例_weixin_33875839的博客-程序员秘密

本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-11/75149.htm L同学又一次把socket连接往错误的端口上连了。搬完办公室,D同学说端口有点乱,一台开发机上3个游戏,端口范围不规范,于是就定了下各个游戏的端口区间,负载其中一款游戏的L同学就开始修改端口了。修改...

随便推点

物料删除标记_sap物料删除标记_Lynnlichao的博客-程序员秘密

<br /> <br />在SAP系统中的系统表数据一般是不能手动直接添加、删除,所以在系统中会有一个标记字段记录。这里讲物料号的删除。<br />T-CODE:MM06   归档T_code: SARA  其它删除如销售伙伴(VD06)等都差不多。<br />删除标记:可以对物料在不同层次级别上进行删除标记. 它与归档不同,删除标记后是可以改变的,而归档是对物料进行彻底的删除,归档以后将不可用,相当于在数据内存中将数据记录进行删除.<br /><br /><br /><br />编辑---》选择开关<br

BroadcastReceiver工作原理_weixin_30882895的博客-程序员秘密

--摘自《android插件化开发指南》1.动态注册过程是注册Receiver并通知AMS,发送内容包括IntentFilter、一个实现了IIntentReceiver接口的Binder对象、activity所在的进程。2.AMS收到消息后,会把所有Receiver保存在一个列表中3.静态Receiver是在App安装的时候注册,PMS会解析AndroidManifest中的四大组件...

el-table 展开行默认关闭或打开_"type=\"expand\" 关闭所有"_jack_bob的博客-程序员秘密

转载博客地址:https://blog.csdn.net/qq_35257117/article/details/97906637?utm_source=distribute.pc_relevant.none-task1.第一种方式: 使用 :default-expand-all=“isExpand”优点:方便,简单,页面初始化的时候给 delfault-expand-all 赋值展开或关闭...

js树形数据结构的搜索功能或获取id_js递归查找树形结构选中节点的id_Z_Wonderful的博客-程序员秘密

项目场景:js树形数据结构的搜索描述:根据搜索条件筛选树形数据树形数据:var tree = [{ id: '01', text: '广东省', children: [{ id: '011', text: '广州市', children: [ { id: '0111',

推荐文章

热门文章

相关标签