shell函数

Shell脚本

我的梦境 提交于 2020-01-17 19:50:40
1.1.1创建与编写 Shell脚本通常都以.sh为后缀。第一行内容表示使用bash语法,更加规范。#后面跟一些时间日期版本。 查看 另一种方式 使用该方法需要脚本本身具有执行权限,所以给脚本加一个x 使用sh时,可以加-x查看这个脚本的执行过程。 1.1.2 date命令 date +%Y: 表示以四位数字格式打印年份。 date +%y:表示以两位数字格式打印年份。 date +%m: 表示月份。 date +%d: 表示日期。 date +%H:表示小时。 date +%M: 表示分钟。 date +%S: 表示秒。 date +%w: 表示星期。结果显示o则表示周日。 1.2Shell脚本中的变量 1.2.1 数学运算 示例 数学计算要用[ ]括起来,并在前面加$ 结果为 1.2.2 和用户交互 read命令用于和用户交互,他把用户输入的字符串作为变量值。结果为 加上-x查看整个执行过程 1.2.3 shell脚本预设变量 在脚本后面跟的参数就是预设变量 $1代表第一个参数$2代表第二个,给shell脚本的预设变量是没有限制的 1.3shell脚本中的逻辑判断 1.3.1 不带else 示例 (())时shell中特有的格式,只用一个或者不用都会报错。 结果: 1.3.2 带有else 示例 结果 1.3.3 带有elif 示例 结果 判断数值大小可以用(())外还可以用[

shell中特殊参数的归纳整理

时光总嘲笑我的痴心妄想 提交于 2020-01-16 04:15:44
文章目录 $变量名(位置参数) 多个位置参数的传递引用 $0获取脚本文件的名字 单独获取脚本文件的路径和名称 $#获取脚本传参的个数 set设置位置参数(同命令脚本传参) 美元符*和美元符#的区别 +函数的定义+for循环的定义 shfit 自动移动位置 $变量名(位置参数) ![在这里插入图or_FFFFFF,t_70) 2. 多个位置参数的传递引用 1. 传值 $0获取脚本文件的名字 单独获取脚本文件的路径和名称 dirname 单独获取脚本文件的路径(目录 ) basename 单独获取脚本文件的文件名 2. $#获取脚本传参的个数 set设置位置参数(同命令脚本传参) 美元符*和美元符#的区别 +函数的定义+for循环的定义 $ * 和$#都表示接收列表中的所有参数,它们的区别如下: 1.此时输出相同, 2.加引号时有区别 $ * 把输入的内容按照原格式输出 当成一个整体 $@ 把原来的内容 一个一个分开输出 shfit 自动移动位置 来源: CSDN 作者: 难得 yx 链接: https://blog.csdn.net/weixin_45649763/article/details/103993012

shell中各种括号()、(())、[]、[[]]、{}的作用

北慕城南 提交于 2020-01-15 17:21:05
技巧小结: 字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留空格 反单引号起着命令替换的作用 单括号(): 另开命令组——小括号中的内容会开启一个子shell独立运行;括号中以分号连接,最后一个命令不需要;各命令和括号无空格 得到命令输出——a=$(command), 等同于a=$ command ,得到命令输出传递给变量a 初始化数组——array=(a b c d) 双括号(()): 省去$符号的算术运算—— for((i=0;i<5;i++)); if (($i<5)); a=5; ((a++)) 可将 $a 重定义为6;括号内支持多个表达式用逗号分开。 C语言规则运算——$((exp)),exp为符合C语言规则的运算符,表达式 跨进制运算——二进制、八进制、十六进制运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制) 单中括号[ ]: 字符串比较——==和!= 整数比较——不等于:-gt:大于;-lt :小于;-eq:等于;-ne 数组索引——array[0] 双中括号[[]]: 字符串比较——可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell?

shell脚本中$!、$@、$#、$$、$0、$1、$2、$*的含义

亡梦爱人 提交于 2020-01-15 12:55:05
一、shell脚本中$!、$@、$#、$$、$0、$1、$2、$*的含义 $! :Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID 号) $#:添加到shell当中参数的个数 $$:Shell本身的PID(ProcessID,即脚本运行的当前 进程ID 号) $0:脚本本身的文件名 $1:传到Shell当中的第一个参数 $2:传到Shell当中的第二个参数 $*:所有参数列表。如$*用 " " 括起来的情况、以 "$1 $2 … $n" 的形式输出所有参数,此选项参数可超过9个;若不加" ",那么$*与$@的输出结果相同 $@:所有参数列表。如$@用 " " 括起来的情况、以 "$1" 、"$2"、 … "$n" 的形式输出所有参数。 脚本举例: echo "number:" $# echo "PID:" $$ echo "sname:" $0 echo "first:" $1 echo "second:" $2 echo $@ echo $* echo "" echo "==========" n=1 for i in "$@" do echo "$n : " $i let n+=1 done echo "" echo "==========" n=1 for i in "$*" do echo "$n : " $i let n+=1 done

Shell——你只需要了解这么多

丶灬走出姿态 提交于 2020-01-15 09:19:33
一.Shell简介 Shell是一个用C语言编写的程序,通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。 二.两类程序设计语言 我经常说道shell脚本,其实是因为Shell是一种脚本语言,也就是解释性语言。程序设计语言可以分为两类:编译型语言和解释型语言。 语言 区别 编译型语言 需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点 解释型语言 也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降 三.Shell脚本解释器 Linux的Shell脚本解释器种类众多,一个系统可以存在多个shell脚本解释器,可以通过cat /etc

linux-设置环境变量-export

百般思念 提交于 2020-01-15 05:48:25
Linux export命令用于设置或显示环境变量。 在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。 export的效力仅及于该次登陆操作。 语法 export [-fnp][变量名称]=[变量设置值]参数说明: -f  代表[变量名称]中为函数名称。 -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 -p  列出所有的shell赋予程序的环境变量。 来源: https://www.cnblogs.com/DengGao/p/6341443.html

shell学习-常用语句

随声附和 提交于 2020-01-14 16:14:03
为什么使用shell 可以快速、简单的完成编程,实现自己的想法。Shell非常适合编写小的工具,因为小工具更强调的是易于配置、维护、移植等,而不是执行效率。 当自己的想法确实有必要进行优化,有必要让它更容易修改以及修正设计目的时,可以将shell编写的工具重新用C、C++/python等语言重新实现。 常见的shell有bash/csh/sh等 管道和重定向 ls -al > lsoutput.txt #将ls命令输出的内容重定向到txt文件 在>前加数字 0 1 2 分别代表输入、标准输出、错误输出 参数2可以将错误输出到文件 而标准输出的内容将显示在屏幕上 >> #将输出添加到文件 丢弃不需要保存的输出的方法 Kill -l 1234 >/dev/null 2>&1 #将标准输出与错误输出都丢弃到系统垃圾箱 | 管道 用来连接进程 通过管道连接的进程可以同时运行,并自动协调数据流 1 Ps > psout.txt #输出ps内容到psout.txt 2 Sort psout.txt > psout.out #对psout.txt内容进行排序 输出到psout.out中 管道写法 1 Ps | sort | pssort.out #将ps内容排序后输出 自动搜索文件夹下 所有文件中包含的 某字符串 More $(grep -l POSIX *) #在当前文件夹下的文件中

[Shell] 函数的应用

醉酒当歌 提交于 2020-01-13 17:44:05
shell中函数的定义格式如下: [ function ] funname [()] { action; [return int;] } 说明: 1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255 举例说明: 不带参数的函数: demoFunc(){ #定义函数 echo "这是第1个shell函数" } echo "-------函数开始执行------" demoFunc #执行函数 echo "-------函数执行完毕------" 执行效果: $ sh testfunc.sh -------函数开始执行------ 这是第1个shell函数 -------函数执行完毕------ 函数返回值在调用该函数后通过 $? 来获得。 注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。 带多个返回值的函数: test(){ echo 100 #返回100 echo 200 #返回200 } a=$(test) echo $a 执行效果: sh testfunc.sh 100 200 带参数的函数: funWithParam(

shell与export命令

北慕城南 提交于 2020-01-13 15:05:46
export命令 功能说明:设置或显示环境变量。 语  法:export [-fnp][变量名称]=[变量设置值] 补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。 参  数:  -f  代表[变量名称]中为函数名称。  -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。  -p  列出所有的shell赋予程序的环境变量。 来源: https://www.cnblogs.com/seasonsstory/p/3259846.html

计算机系统大作业 程序人生-Hello’s P2P From Program to Process

北慕城南 提交于 2020-01-13 04:10:37
计算机系统 大作业 题 目 程序人生-Hello’s P2P 专 业 计算机 学 号 1180300327 班 级 11803003 学 生 黄锦洋 指 导 教 师 史先俊 附件:https://download.csdn.net/download/wyp237/12082603 计算机科学与技术学院 2019 年 12 月 计算机系统基础课程报告 1 - 摘 要 本文通过 hello.cP2P 和 020 的整体介绍,回顾了对计算机系统的学习,并稍做 拓展和深入,对相关存储与相关函数做了些许介绍。 关键词:计算机系统;P2P;020;存储;I/O (摘要 0 分,缺失-1 分,根据内容精彩称都酌情加分 0-1 分) 计算机系统基础课程报告 2 - 目 录 第 1 章 概述 … - 4 - 1.1 HELLO 简介 … - 4 - 1.2 环境与工具 … - 4 - 1.3 中间结果 … - 4 - 1.4 本章小结 … - 5 - 第 2 章 预处理 … - 6 - 2.1 预处理的概念与作用 … - 6 - 2.2 在 UBUNTU 下预处理的命令 … - 6 - 2.3 HELLO 的预处理结果解析 … - 6 - 2.4 本章小结 … - 7 - 第 3 章 编译 … - 8 - 3.1 编译的概念与作用 … - 8 - 3.2 在 UBUNTU 下编译的命令 … - 8