shell函数

Shell脚本编程

自古美人都是妖i 提交于 2019-12-15 22:48:37
目录 1 基本介绍 1.1 什么是Shell 1.2 什么是Shell Script 1.3 Shell能做什么 2 运行环境 2.1 Shell 环境 2.2 bash环境文件 3 运行基础 3.1 Shell脚本格式 3.2 脚本的执行 4 编程语法 4.1 变量 4.2 字符串 4.3 数组 4.4 注释 4.5 基本运算符 1 基本介绍 1.1 什么是Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁 是一种命令语言,又是一种程序设计语言 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务 1.2 什么是Shell Script 是一种为Shell编写的脚本程序 1.3 Shell能做什么 将多个命令写在一起,让用户很轻松的就能执行一个文件的Shell脚本,就能够一次执行多个命令。 2 运行环境 2.1 Shell 环境 Bourne Again Shell (/bin/bash) Bourne Shell (/usr/bin/sh或/bin/sh) 只要有一个能编写代码的文本编辑器vi和一个能解释执行的脚本解释器就可以了 2.2 bash环境文件 .bash_profile 设置环境变量 账户一建立,该文件就存在 .bashrc 存放针对bash的命令 在 .bash_profile 之后执行 .bash_logout

Shell编程—创建函数

安稳与你 提交于 2019-12-15 20:28:49
1 基本的脚本函数 函数是一个脚本代码块,你可以为其命名并在代码中任何位置重用。要在脚本中使用该代码块时,只要使用所起的函数名就行了。 1.1 创建函数 有两种格式可以用来在bash shell脚本中创建函数。第一种格式采用关键字function,后跟分配给该代码块的函数名。 function name { commands } 二种格式更接近于其他编程语言中定义函数的方式。 name() { commands } 1.2 使用函数 $ cat test1 #!/bin/bash # using a function in a script function func1 { echo "This is an example of a function" } count=1 while [ $count -le 5 ] do func1 count=$[ $count + 1 ] done echo "This is the end of the loop" func1 echo "Now this is the end of the script" $ ./test1 This is an example of a function This is an example of a function This is an example of a function This is

用shell和python语言实现1到100相加的和

我的梦境 提交于 2019-12-14 09:08:21
大家是不是以为。这篇文章是《如何将Shell脚本应用到实际中》系列的啊。猜错了。出乎意料之外。哈哈。因为我的工作经验有限。我就不嘚瑟了。写点基本的吧。一方面加强自己的基础,二方面嘚瑟一下自己刚学会的Python基础语言以免忘记。(虽然是菜鸟)。 这个,是很简单的。题干的中心意思就是1+2+3+4+5+6+7+.....+100=?,我们要实现的就是这个“?”的值。 首先是用Python的while循环实现的: Python中的for循环也可以实现,看下图: 这个for循环呢。有个遍历是非常厉害的。那么用for来实现1+2+3+...+100的和是非常简单的了。 首先定义一个变量i,记录每次遍历的值。 定义一个变量sum1记录两数相加的和。 然后,最重要的来了,在这划重点哦,敲黑板。别走神哦。 for i in range(101): 这句的重要在 range ,为什么是 range ( 101 )? 答:range是范围函数,默认从0开始,故range(0,101)可以写成range(101)。 有人有疑问了。不是到 100 吗。怎么是 101 ? 答:range函数的规则是,左闭右开,等于数学上的左闭右开区间数。所以,是range(101)。 Are you ok ? 注意哦! for和while循环的最后,别忘了还有冒号 : ,英文字符下的哦! 最后呢,我用shell脚本写一下

shell脚本编程之变量的小用法

橙三吉。 提交于 2019-12-11 20:41:22
变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word";否则,展开为parameter的值; ${parameter:+word}:如果parameter为空或未定义,不做任何操作;否则,展开为"word"值; ${parameter:=word}:如果parameter为空或未定义,则变量展开为"word",并将展开后的值赋值给parameter; ${parameter:?word}:如果parameter为空或未定义,则显示为错误,错误信息为"word"; ${parameter:2}:跳过parameter的前两个字符,取parameter后面的所有字符; ${parameter:2:3}:跳过parameter的前两个字符,从parameter的第三个字符开始往后取三个字符; 示例 [root@centos6 ~]# vim test.sh #!/bin/bash . /root/f1.txt TEST=${TEST:-'hello world'} #如果f1.txt中定义了TEST变量的值,就打印TEST值;如果f1.txt中未定义或TEST值为空,就打印后面的'hello world'; [ -n "$TEST" ] && echo "$TEST" 局部变量 local VAR_NAME function test

70个shell脚本技巧

别来无恙 提交于 2019-12-11 12:04:23
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 (LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。) 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 3) 如何计算传递进来的参数 ? $# 4) 如何在脚本中获取脚本名称 ? $0 5) 如何检查之前的命令是否运行成功 ? $? 6) 如何获取文件的最后一行 ? tail-1 7) 如何获取文件的第一行 ? head-1 8) 如何获取一个文件每一行的第三个元素 ? awk'{print $3}' 9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素 awk'{ if ($1 == "FIND") print $2}' 10) 如何调试 bash 脚本 将 -xv 参数加到 #!/bin/bash 后 例子: #!/bin/bash –xv 11) 举例如何写一个函数 ? function example { echo "Hello world!" } 12)

shell编程入门

让人想犯罪 __ 提交于 2019-12-10 13:43:43
shell编程入门:linux命令行、重定向、管道;shell变量、shell条件判断、shell流程控制、shell函数 1.linux命令行、重定向、管道 http://my.oschina.net/shw23/blog/688280 2.shell基础 http://my.oschina.net/shw23/blog/688293 3.shell变量 http://my.oschina.net/shw23/blog/688726 4.shell条件判断 http://my.oschina.net/shw23/blog/688733 5.shell流程控制 http://my.oschina.net/shw23/blog/688786 6.shell函数 http://my.oschina.net/shw23/blog/688788 来源: oschina 链接: https://my.oschina.net/u/2775447/blog/688800

Ipython 和 python 的区别

橙三吉。 提交于 2019-12-10 10:09:31
IPython是一个python交互shell,它比默认的python shell更易于使用。它支持自动变量完成、自动缩进、bash shell命令,并且内置了许多有用的函数和函数。 IPython是基于BSD的开源软件。 IPython为交互式计算提供了丰富的体系结构,包括: ·强大的交互式外壳 ·朱庇特核 ·交互式数据可视化工具 灵活可嵌入的解释器 ·易于使用的高性能并行计算工具 IPython的开发人员吸收了标准解释器的基本概念,并在此基础上进行了许多改进,创建了一个令人惊叹的工具。在其主页上,它说:“这是一个增强的交互式Python shell”,它具有选项卡完成、对象内省、强大的历史机制、嵌入式源代码编辑、集成Python调试器、%运行机制、宏、创建多个环境和调用系统shell等功能。 IPython和标准Python的最大区别是IPython对命令提示符的每一行进行编号。 Python shell和IPython的区别: Python外壳不能在退出时保存历史记录; IPython的历史记录自动保存在history.sqlite文件中,最后三条记录可以用“,”“和”“调用。 Python shell不支持tab自动完成; IPython支持选项卡完成。 Python shell不能快速获取类和函数信息; 通过“?”显示对象签名、文档字符串、代码位置,然后单击“?

Linux下使用popen()执行shell命令

非 Y 不嫁゛ 提交于 2019-12-10 03:09:09
函数原型:   #include “stdio.h”   FILE popen( const char command, const char* mode )   参数说明:   command: 是一个指向以 NULL 结束的 shell 命令字符串的指针。这行命令将被传到 bin/sh 并使用 -c 标志,shell 将执行这个命令。   mode: 只能是读或者写中的一种,得到的返回值(标准 I/O 流)也具有和 type 相应的只读或只写类型。如果 type 是 “r” 则文件指针连接到 command 的标准输出;如果 type 是 “w” 则文件指针连接到 command 的标准输入。   返回值:   如果调用成功,则返回一个读或者打开文件的指针,如果失败,返回NULL,具体错误要根据errno判断   int pclose (FILE* stream)   参数说明:   stream:popen返回的文件指针   返回值:   如果调用失败,返回 -1   作用:   popen() 函数用于创建一个管道:其内部实现为调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程这个进程必须由 pclose() 函数关闭。   例子:   管道读:先创建一个文件test,然后再test文件内写入“Read pipe successfully !”

<LINUX >bash shell 入门 --linux学习笔记

核能气质少年 提交于 2019-12-10 02:38:37
首先说下我个人对于shell的理解,我觉得shell是一种通过各种控制语句将linux命令进行集合实现批处理的一种脚本语言. shell编程入门其实很简单,语法知识并不多,但是高级shell编程就很难,因为shell是用户和linux之间的桥梁,要编写高质量的shell脚本,就需要用户对linux有很全面的认识. 这里我们只分析shell脚本的语法知识,如想透彻的学习linux还需多努力. shell结构 1.#!指定执行脚本的shell 2.#注释行 3.命令和控制结构 创建shell程序的步骤: 1.创建一个包含命令和控制结构的文件 2.修改这个文件的权限使它可以执行,使用chmod u+x 3.执行 ./example 或者sh exmaple 如下为一个简单的shell脚本,显示当前目录路径,和子文件 demo.sh #!/bin/sh #we use pwd to print the directory path /bin/pwd #we use ls to print the children directories /bin/ls 变量 shell变量有两种 1.临时变量 只在当前文件中起作用。包括用户自定义变量和位置变量 2.永久变量 永久变量又叫环境变量,其值不随脚本的结束而消失 设置变量的时候直接使用变量名加赋值即可如date=`date`

Crontab调用shell脚本函数中变量为空

穿精又带淫゛_ 提交于 2019-12-09 22:13:58
问题: 在写一个任务脚本shell,Crontab运行后发现函数中的变量为空。 但是不使用Crontab,直接执行shell可以运行,变量有值。 解决方案: 原因是Crontab运行时的环境与脚本的环境不一致,在脚本中加上刷新环境变量的就好了。如下: check函数就出现了上面描述的问题。 我们在 #!/bin/bash 后面加上 . /etc/profile 即可。 来源: CSDN 作者: 杨鑫newlfe 链接: https://blog.csdn.net/u012965373/article/details/103465242