在linux中编写shell脚本文件,如何编写简单的Shell脚本(Script)文件之Linux的基本操作...

如何编写简单的Shell脚本(Script)文件之Linux的基本操作

新建一个文本文件包含所需要的脚本。举例,我会使用pico编辑器写一个脚本用来运行程序tar,带上必要的可选项可以用来解压从因特网下载下来的*.tar的文件(我好像总是记不住tar的所有参赛)。滑动轴承 我决定把我的脚本名称叫做“untar”:

pico untar

因为在我的当前工作目录里untar文件不存在,所有pico文本编辑器自动创建这个文件,现在,我输入以下内容:

#!/bin/bash

echo this is the script file $0

echo untarring the file $1

# this calls tar with options -xvzf (extract,

# verbose, filter through gzip, input filename)

tar -xvzf $1

我使用O保存这个文件,然后X退出。

脚本的第一行,以“#!”开始是特别的提示-它告诉shell应该用哪一个程序来解释我的脚本。在这个例子里,我使用bash shell /bin/bash。第一行必须使用“#!”开头,否则脚本不会运行(系统认为是一个文本文件)。水泥烟囱新建 其他以“#”开始的行是注释行只是给作者和读者使用的,计算机将跳过这些行。

在以上脚本里,参数$0, $1, $2…是传递到脚本里面的参数。举个例子,如果我运行我的脚本名“myscript”带七个参数如下:

myscript a b c d e f g

那么,参赛$0就是myscript, $1就是a, $2就是b,$3就是c,依此类推。

脚本的第二行和第三行,echo命令输出所有在它后面同一行上的文本,然后扩展在脚本里对应的参数$0和$1。第四行和第五行是我写的注释文本,提醒我在这个脚本里要做的事情。只有最后一行是真正起作用的。

一旦脚本已经写好,我把文件属性改成对文件拥有者是“可执行”的:

chmod u+x untar

然后我的脚本就可以这样运行了:

./untar my_tar.tar.gz

Liunx脚本的确非常丰富,灵活,功能强劲,还可能有点复杂。然而,对于日常任务编写一些简单脚本,它并不需要什么特别高深的知识。你可以把一些要用到的命令放在一起,一个接一个,输入到文件里。活动隔断 我使用脚本很频繁是因为我太懒了,不想一次一次的输入相同的命令。

一个最简单的方法,可以把一组命令放在文本文件里然后使用source命令传递给shell让它直接运行:

source my_file

这个时候就不需要在文本第一行加上“#!”的标志了。

3.4.6 引号的含义

一般来说,以下字符对于shell有特殊的含义:

\ ' " ` < > [ ] ? | ; # $ ^ & * ( ) =

这里有四种不同的符号:反斜杠(\),单引号(‘),双引号(“),反向单引号(`)。

反斜杠(\)表示:关闭后面字符的特殊含义

单引号(‘)表示:关闭在两个单引号之间所有字符的特殊含义

双引号(“)表示:关闭在两个双引号之间所有字符的特殊含义除了$ ` \

反向单引号(`)表示:告诉shell首先运行两个反向单引号之间的命令,生物醇油 然后把得到的结果再传递给两个单引号之外的命令。同样的功能也可以通过“$command”命令来实现,而且可能会更方便。

举个例子,我可以创建一个奇怪的目录名叫做“*”通过使用“\”或者“’”符号:

mkdir \*

mkdir ’*’

这屏蔽了“*”对于shell的特别含义。如果没有“\”,“*”意味着当前目录下所有文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux钩子拦截删除文件,在Linux中保存钩子文件

您可以尝试FILE_PRELOAD utility&#xff0c;它们会生成带钩子的C代码&#xff0c;编译和LD_PRELOAD它。在简短的看了一下之后&#xff0c;你可以感觉到如何轻松地挂接linux。起点是this tutorial。例如&#xff0c;如果你想改变文件/ tmp的“公开征集” /一些带有的/ tmp/repl…

Linux内核怎么优化,linux 内核该怎么优化

Linux系统下&#xff0c;TCP连接断开后&#xff0c;会以TIME_WAIT状态保留一定的时间&#xff0c;然后才会释放端口。当并发请求过多的时候&#xff0c;就会产生大量的TIME_WAIT状态的连接&#xff0c;无法及时断开的话&#xff0c;会占用大量的端口资源和服务器资源。这个时候…

编译linux内核适用的编译器,编译Linux内核时,CC,LD和CC [M]输出的代码是什么?...

所以一般情况下&#xff0c;你只需要 git grep cmd.* CODE找到CODE。获取scripts/Makefile.build定义的所有代码 make | grep -E ^ | sort -uk1,1CC和CC [M]名单&#xff1a; quiet_cmd_cc_o_c CC $(quiet_modtag) [email protected]cmd_cc_o_c $(CC) $(c_flags) -c -o [em…

红旗linux修改个人密码,LINUX红旗5.0的用户名和密码!

怎样卸载、安装红旗linux本二,安装红旗Linux桌面版 4。0将光驱设为第一启动盘,放入第一张安装光盘后重新启动电脑,如果你的光驱支持自启动, 如无意外将出现如下图1如果不进行操作,在10秒后自动进入下一画面,显示如下图2所示一启动就能使用鼠标了,比效方便;软件协议,只能选同意,…

linux多线程九宫格,项目实战:Qt九宫格图片资源浏览器(支持window、linux、兼容各国产系统,支持子文件夹,多选,全选,图片预览,行数与列数设置等)...

需求做嵌入式设备&#xff0c;需求九宫格图片资源浏览器&#xff1a;1.设置根目录&#xff1b;2.可拖动&#xff1b;3.可设置列数与行数&#xff1b;4.点击文件夹可以进入文件夹&#xff1b;5.点击图片可以浏览图片&#xff1b;6.支持触摸屏上下拽拖浏览&#xff1b;7.支持长安…

linux mdev -s没有运行,mdev详解

一、概述mdev是busybox提供的一个工具&#xff0c;用在嵌入式系统中&#xff0c;相当于简化版的udev&#xff0c;作用是在系统启动和热插拔或动态加载驱动程序时&#xff0c;自动创建设备节点。文件系统中的/dev目录下的设备节点都是由mdev创建的。在加载驱动过程中&#xff0c…

linux x86-64下,Linux x86_64下安装Flash Player 9

家里 Linux 安装已经有几天了&#xff0c;可是用 Firefox 浏览网页总是看不到 Flash。到了 Adobe 官方去下载了 Flash 插件&#xff0c;结果安装的时候说它不支持 x86_64&#xff0c;安装计划就一直搁浅。天天上网看见“缺失插件”的框框&#xff0c;非常不爽&#xff0c;所以就…

window连接树莓派linux桌面,远程连接Raspberry Pi(树莓派)图形用户界面(X Window)

背景&#xff1a;有的时候&#xff0c;我们希望能远程连接一台linux的图形界面用来管理机器,这里需要用到tightvncserver和xtightvncviewer两个工具我的树莓派的ip是10.141.247.134 另一台机器为作client去链接树莓派的ip为10.141.247.121. 先在树莓派的机器上安装tightvncs…

linux小红帽系统能用微信,小红帽腾讯QQ微信登录版-小红帽腾讯版v1.0.3 安卓版-腾牛安卓网...

小红帽腾讯版是一款专为广大喜爱玩童话类手游的玩家打造的欧美风游戏&#xff0c;这款游戏有着最为精致的游戏画面&#xff0c;黑色风格的童话故事&#xff0c;带领玩家领略不一样的童年世界&#xff0c;给您带来最佳的游戏体验&#xff01;小红帽腾讯版简介《小红帽》是一款改…

在linux实现公平队列,多级反馈队列调度策略在Linux中的应用和实现.pdf

多级反馈队列调度策略在Linux中的应用和实现.pdf第30卷第20期 计算机工程 2004年10月I&#xff0f;01&#xff0e;30^矗2口 ComputerEngineering October2004文t标识码tA 中强分娄号I TP311&#xff0e;52软件技术与数据库 文章-号tlooo-3428(2004)20—&#xff0e;008l—_03多…

c语言第五章作业,《C语言程序设计》第五章作业.doc

《C语言程序设计》第五章作业窗体顶端《C语言程序设计》第5章作业布置日期&#xff1a;2012-3-15?????截止日期&#xff1a;2012-3-22一、单选题 (每小题6分&#xff0c;共102分)?1、以下说法中正确的是&#xff3f;&#xff3f;&#xff3f;&#xff3f;。????A、C语…

i7 5500u linux,i7 5500u相当于什么cpu

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。i7 5500u相当酷睿i5CPU&#xff0c;I7 5500U是酷睿笔记本专用CPU&#xff0c;是双核四线程的一款处理器&#xff0c;严格来说不算第五代的I7&#xff0c;而是全新一代的I7型号。酷睿…

c语言字符串用for语句去重,C# 实现字符串去重

方法一 注&#xff1a;需要.net 3.5框架的支持string s "101,102,103,104,105,101,102,103,104,105,106,107,101,108";s string.Join(",", s.Split(,).Distinct().ToArray());方法二class Program{static void Main(string[] args){string result"&…

c语言利用遍历求树高的程序,用C语言实现二叉树的遍历极其应用

用C语言实现二叉树的遍历极其应用[1]〔摘要〕&#xff1a;《数据结构》是计算机系学生的一门专业技术基础课程&#xff0c;计算机科学各领域及有关的应用软件都要用到各种数据结构。C语言有较丰富的数据类型、运算符以及函数&#xff0c;能直接与内存打交道&#xff0c;使修改、…

c语言编程出彩色告白,C语言告白代码,一闪一闪亮晶晶~

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include #include #define I 20#define R 340int main(){int i,j,e;int a;for(i1,aI;ifor(j(int) ( I-sqrt(I*I-(a-i)*(a-i)) );j>0;j--)printf(" ");for(e1;e<2*sqrt(I*I-(a-i)*(a-i));e)printf("…

计算机二级c语言2021年重点内容,2021年5月计算机二级C语言试题(总)

一个考生的快乐&#xff0c;不是因为他备考的时间多&#xff0c;而是因为他的选择对。选择考无忧题库&#xff0c;做二级C语言试题&#xff0c;助你备考轻松&#xff01;二级C语言试题【1】1.若有以下数组说明&#xff0c;则i10;a[a[i]]元素数值是(C)。int a[12]{1,4,7,10,2,5,…

c语言case key pres,C#程序设计B-中国大学mooc-题库零氪

第2讲 C#语言基础2.1 数据类型、变量与常量 —— 语言中的单词随堂测验1、(加号)可以表示A、算术的加法B、正号C、字符串的连接D、事件的注册()2、int是引用类型3、string是引用类型4、double在内存中占8个字节5、int占2个字节6、Person p1 new Person(18); //Person是引用类型…

c语言递归求差分方程,如何使这个简单的递推关系(差分方程)尾递归?

bytebuster的解决方案很好&#xff0c;但他没有解释他是如何创建它的&#xff0c;所以它只会帮助解决这个特定的问题。顺便说一句&#xff0c;你的公式看起来有点像斐波纳契(但不完全)&#xff0c;它可以是calculated analytically without any looping(即使没有循环隐藏在Seq.…

android text 字体设置,Android TextView个别字体格式设置小结

android 在同一个TextView中如何展现出不同的字体和颜色总结一下1.主要是痛通过String.xml使用html标签静态配置然后动态引用Html.fromHtml(getResources().getString(R.string.myHeadStr));2.textView 动态设置//创建一个 SpannableString对象 msp new SpannableString("…

android 图片合成pdf文件,教你怎么把多张图片合成一个pdf文件

当你遇到需要把多张图片合并成一个pdf文件时&#xff0c;你需要怎么做?可能有些朋友会说下载一个pdf格式转换工具&#xff0c;其实不必这么麻烦&#xff0c;你只要把文件上传到在线迅捷pdf转换器&#xff0c;就可以一站式帮你搞定pdf文件的格式转换以及一些常用的功能操作(如p…