shell函数

Shell

北战南征 提交于 2019-12-04 18:20:39
一、 Shell 1. Shell 简介 1. Shell 是一个用 C 语言编写的程序,它既是一种命令语言,又是一种程序设计语言,它是用户使用 Linux 的桥梁2. Shell 脚本(Shell Script),是一种为 Shell 编写的脚本程序3. 用户开发的 Shell 脚本可以驻留在命令搜索路径的目录之下(通常是 /bin、/usr/bin 等),像普通命令一样使用。如果打算反复使用编好的 Shell 脚本,可以开发出自己的新命令4. Linux 的 Shell 种类众多,常见的有: 1)Bourne Shell(/usr/bin/sh 或 /bin/sh) 2)Bourne Again Shell(/bin/bash) 3)Shell for Root(/sbin/sh) ....5. 本文关注的是 Bash,也就是 Bourne Again Shell 1)由于易用和免费,Bash 在日常工作中被广泛使用 2)Bash 也是大多数 Linux 系统默认的 Shell 3)一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以 #!/bin/sh 也可以写为 #!/bin/bash,#! 是一个约定的标记,其路径告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell6. Shell 脚本的编写 1)使用 vi/vim

shell脚本编程

谁说胖子不能爱 提交于 2019-12-04 17:52:32
shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。 我们要知道bash和sh不是一个东西,我们需要了解,bash完全兼容sh,也就是说,用sh写的脚本可以不加修改的在bash中执行。 终端输入 vi test.sh 开始编辑输入一下内容: echo "Hi, SB" read PERSON echo "$PERSON, ni shi hou zi pai lai de dou bi ma ?" 输入完毕后,按Esc,然后输入 wq,按enter 好了已经保存并且退出了。(以上步骤如果还不够熟练,建议你换个姿势~再来一次并且明白每个步骤的作用) 接着运行,运行的话有好几种方式,这里用俩种吧 第一种,输入 ./test.sh(注意!前面有个点,表示当前目录下) 第二种,输入 sh test.sh (当然bash test.sh也可以啦,前面说了bash对sh兼容是很好的,当然我这里不是看敲sh方便嘛,就俩个字符。(尼玛!多敲俩个字符能死。。)) 好了,看看结果。咦?怎么不对。。。 Linux有个权限系统,我们这样创建的文件是没有执行权限的

shell脚本编程

左心房为你撑大大i 提交于 2019-12-04 16:20:46
什么是shell shell是操作系统的最外层,shell可以合并编程语言以控制进程和文件,以及启动和控制其他程序。shell通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出,简单来说shell就是一个用户跟操作系统之间的一个命令解释器。 shell环境 Linux shell种类有很多,常见的shell如下: bourne shell(/user/bin/sh或/bin/sh); bourne again shell(/bin/bash); C shell(/user/bin/csh); K shell(/user/bin/ksh); shell for root(/sbin/sh); 不同的shell语言的语法有所不同,一般不能交换使用,最常用的shell是bash,也就是bourne again shell。bash由于易用和免费,在日常生活中被广泛使用,也是大多数Linux操作系统默认的shell环境。 shell脚本及Hello World 要熟练掌握shell编程语言,需要大量的练习,初学者可以用shell打印“Hello World”字符。 shell脚本编程需要注意以下几个事项: 1、shell脚本名称命名一般为英文的大写、小写; 2、不能使用特殊符号、空格来命名; 3、shell脚本后缀以.sh 结尾; 4、不建议shell命名为纯数字

shell脚本编程

偶尔善良 提交于 2019-12-04 15:38:44
一、 Shell 中的变量   任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识。 1 、默认变量 $0 当前脚本名称 $1 脚本接收的第一个参数 $2 脚本接收的第二个参数 $# 脚本接收的所有参数个数 $@ 脚本接收的所有参数 $* 脚本接收的所有参数 $? 前一行命令的执行状态 2 、变量定义及赋值 赋值处必须为一个整体,不能有空格。想要包含空格,需要用单引号或双引号包围。单引号 ( ' ) 和双引号 ( " ) 的区别:单引号中保持原样输出。而双引号中会替换成其变量值。 3 、 ` 符号 在该符号中的命令会被执行。可以用 $() 替换 4 、命令行交互 read    read 命令的使用形式为 read [-pt] variable   参数 p :后面可以接提示符   参数 t :后面可以接秒数 5 、定义变量类型 declare   默认情况下,变量的赋值内容都是字符类型的。    declare 命令的使用形式如下: declare [-aixr] variable   参数 a :将 variable 定义为数组   参数 i :将 variable 定义为整型 (integer)   参数 x :将 variable 设置成环境变量,类似于 export 的作用   参数 r : variable 为 readonly 类型,值不能被更改 二、

shell-基础

本秂侑毒 提交于 2019-12-04 10:43:25
Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出屏幕返回给用户。 这种对话方式可以是: 交互的方式:从键盘输入命令,通过/bin/bash的解析,可以立即得到Shell的回应 [root@localhost ~]# echo ls |bash anaconda-ks.cfg tsar [root@localhost ~]# ls anaconda-ks.cfg tsar 非交互的方式: 脚本 什么是Shell脚本 命令、变量和流程控制语句等有机的结合起来 shell脚本擅长处理纯文本类型的数据,而linux中,几乎所有的配置文件,日志,都是纯文本类型文件 脚本语言的种类 一、编译型语言 定义: 指用专用的编译器,针对特定的操作平台(操作系统)将某种高级语言源代码一次性翻译成可被硬件平台直接运行的二进制机器码(具有操作数,指令、及相应的格式),这个过程叫做编译(./configure make makeinstall );编译好的可执行性文件(.exe),可在相对应的平台上运行(移植性差,但运行效率高)。。 典型的编译型语言有, C语言、C++等。 另外,Java语言是一门很特殊的语言,Java程序需要进行编译步骤,但并不会生成特定平台的二进制机器码,它编译后生成的是一种与平台无关的字节码文件(

shell脚本

谁说胖子不能爱 提交于 2019-12-04 10:24:15
1.n的阶乘。 #! # f() { if [ $1 -lt 1 ];then echo 1 else i=$[$1*$(f $[$1-1])] echo $i fi } f 5 2.斐波那契函数。(1,1,2,3,5,8,13,21,34,55....) #!/bin/bash # fact() { if [ $1 -lt 3 ];then echo 1 else i=$[$(fact $[$1-1])+ $(fact $[$1-2])] echo $i fi } fact 8 来源: https://www.cnblogs.com/COO-zsy/p/11589522.html

shell编程

社会主义新天地 提交于 2019-12-04 06:30:40
linux系统下给命令指定别名alias命令用法: 在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题。只要举一些例子就可以了: alias l='ls -l' ;用 l 代替 ls -l 命令(Xenix 下就有类似的 l 命令) alias cd..='cd ..' ;用 cd.. 代替 cd .. 命令(对在 DOS 下使用惯了 cd.. 的人帮助很大) alias md='mkdir' ;用 md 代替 mkdir 命令(对在 DOS 下…) alias c:='mount /dev/hda1 /mnt/c & cd /mnt/c' ;用 c: 命令代替命令序列:安装 DOS 分区,再进入。 通常我们可以将以上命令放到自己的home目录下的.bash_prifle文件中,在使用source .bash_profile 命令.即可使用. Shell编程基础 我们可以使用任意一种文字编辑器,比如gedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): # !/bin/sh 注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh

shell脚本调用api接口,对返回数据处理并返回结果

主宰稳场 提交于 2019-12-03 23:15:19
1 #!/bin/bash 2 # 经纬度反解析地址区域,调用的是腾讯位置的api 3 4 parse_district(){ 5 url="https://apis.map.qq.com/ws/geocoder/v1/?location=$1,$2&key=4XCBZ-BPJ6G-23JQI-I2FZ3-ZSDQ7-E3BVp" 6 #echo ${url} 7 curl ${url} > index.json 8 # 使用正则提取需要的区域信息,实际有需要可以提取省市等接口返回的其他信息 9 grep -E '"district":(.*?),' index.json > district.info 10 res=`cat district.info` # eg: "district": "海淀区", 11 res=${res##*:} # "海淀区", 12 res=${res:0:-1} # "海淀区" 13 echo ${res} 14 } 15 16 # shell函数默认返回值是函数 打印的结果, 如果要使用return,只能是return int型数字 17 a1=`parse_district "$1" "$2"` 18 echo "这是处理返回后的结果: ${a1}" 上述是shell脚本, 比如文件名是: parse_district.sh

Shell命令的执行优先级

岁酱吖の 提交于 2019-12-03 20:56:21
Shell内置命令、外部命令、别名、函数、保留关键字的优先级 在Shell中,有5种可调用的东西:别名(alias)、函数(function)、shell保留关键字、shell内置命令、外部命令。 如果它们同名了,那么优先调用谁呢?可使用 type -a cmd 查看。 # 内置命令、别名、函数、外部命令 $ alias kill="echo haha" $ function kill()(echo hehe) $ type -a kill kill is aliased to `echo haha' # 1.别名kill kill is a function # 2.函数kill kill () { ( echo hehe ) } kill is a shell builtin # 3.内置kill kill is /usr/bin/kill # 4.外部kill # 别名、函数、保留关键字、外部命令 $ alias time="echo haha" $ function time()(echo hehe) $ type -a time time is aliased to `echo haha' # 1.别名 time is a shell keyword # 2.保留关键字 time is a function # 3.函数 time () { ( echo hehe ) }

shell

ぃ、小莉子 提交于 2019-12-03 14:59:39
三、函数的参数传递 1、使用变量的方式传递固定值 [root@manager-61~/cxp]# cat function.lx02.sh #!/usr/bin/bash fun_1(){ echo "$num" } num=10 fun_1 [root@manager-61~/cxp]# sh function.lx02.sh 10 2、使用变量的方式传递可变的值 [root@manager-61~/cxp]# cat function.lx03.sh #!/usr/bin/bash fun_1(){ echo "$num" } num=$1 #执行脚本时将脚本的位置变量的第一个参数传给num fun_1 [root@manager-61~/cxp]# sh function.lx03.sh 6 6 [root@manager-61~/cxp]# sh function.lx03.sh hello hello 3、函数传参示例,传递多个位置参数 `方式一` [root@manager-61~/cxp]# cat function.lx04.sh #!/usr/bin/bash fun_1(){ echo "$1" } fun_1 $1 fun_1 $2 fun_1 $3 [root@manager-61~/cxp]# sh function.lx04.sh 11 22 33 11