shell函数

第一章 Shell基本概述

a 夏天 提交于 2019-12-02 01:47:18
1. Shell课程大纲介绍 01)Shell基本概述 02)Shell变量定义 03)Shell数值运算 04)Shell流程控制 05)Shell循环语句 06)Shell数组函数 07)Shell内置命令 08)Shell正则表达式 2. 什么是Shell ? Shell是一个命令解释器,它的作用是解释和执行用户输入的命令及程序等,用户输入一条命令,Shell就解释执行一条。 Shell存在于操作系统的最外层,负责直接与用户对话,把用户输入的命令解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕返回给用户,当我们输入系统用户名和密码,登录到Linux后的所有操作都是由Shell解释并执行的。 Shell命令是存在交互式和非交互式的两种方式。 什么是交互式:交互式模式就是在终端上执行,Shell等待你的输入,并且立即执行你提交的命令。这种模式被称作交互式,是因为Shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,Shell也终止了。 那什么又是Shell非交互式:非交互式模式,以Shell Script(非交互)方式执行。在这种模式下,Shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,Shell也就终止了。 ​ 可以通过打印"$-"变量的值(代表着当前设置的Shell选项)

技术干货:Linux Shell 编程基础,看这一篇就够了!

耗尽温柔 提交于 2019-12-02 00:30:10
本文摘要 本文主要介绍 Linux Shell 编程的基础知识,包含下面 8 个方面 : Shell 编程概述 Shell 关键字 Shell 变量 Shell 运算 Shell 语句 Shell 函数 Shell 调试 Shell 易错点 下面一一介绍。 Shell 编程概述 在 Linux 下有一门脚本语言叫做: Shell 脚本 ,这个脚本语言可以帮助我们简化很多工作,例如编写自定义命令等,所以还是很有必要学习它的基本用法的,一个简单的 hello.sh 脚本像下面这样, 第一行 #!/bin/bash 标识该 Shell 脚本由哪个 Shell 解释 : #!/bin/bash echo "Hello World!" 赋予权限才可以执行 : # 赋予可执行权限 chmod a+x hello.sh # 执行 ./hello.sh # 结果 Hello World! Shell 的编写流程: 1. 编写 Shell 脚本 2. 赋予可执行权限 3. 执行,调试 下面来介绍具体的语法。 Shell 关键字 常用的关键字如下: 1. echo:打印文字到屏幕 2. exec:执行另一个 Shell 脚本 3. read:读标准输入 4. expr:对整数型变量进行算术运算 5. test:用于测试变量是否相等、 是否为空、文件类型等 6. exit:退出 看个例子: #!/bin

Linux下Shell入门

落爺英雄遲暮 提交于 2019-12-01 23:58:00
Shell是人和计算机之间交流的''翻译官'',通过Shell终端解释器,可以访问到系统内核的服务,Shell执行需要脚本解释器,以及一个编写脚本的工具,一般解释器使用/bin/bash,脚本工具使用vim。Shell跟其他编程语言一样,也支持参数和变量、流程控制、分支等特性,下面简单了解一下。 脚本解释器 通过cat /etc/shells可以查看系统提供的shell脚本解释器,通过echo $SHELL命令可以查看当前默认使用的解释器,可以看出默认情况下是用/bin/bash。 # 查看提供的[root@node01 /home/yangchaolin/hehe]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh# 查看默认使用的 [root@node01 /home/yangchaolin/hehe]# echo $SHELL /bin/bash 第一个Shell脚本 下面写一个输出"hello world"的脚本,来完成第一个shell脚本。 # vim命令进入脚本编辑[root@node01 /home/yangchaolin/shell]# vim shell01.sh# 编辑完查看 [root@node01 /home/yangchaolin/shell]#

shell编程:有类型的变量

走远了吗. 提交于 2019-12-01 22:18:33
1、通过 declare 和 typeset 命令 declare 和 typeset 两者等价 declare 和 typeset 都是用来定义变量类型的 下面以 declare 进行总结 2、declare 参数如下 -r 将变量设置为只读 -i 将变量设置为整数 -a 将变量设置为数组 -F 显示此脚本前定义过的所有函数及内容 -f 仅显示此脚本前定义过的函数名 -x 将变量声明为环境变量 3、举例: 例1: 声明为不可变形式, declare -r   $ var=hello   $ var=world   $ echo $var   打印出:world // 说明 var是可变的   $ declare -r var=hello   $ var=world     打印结果:-bash: var: 只读变量 例2:声明为整型, declare -i   $ num=10   $ num2=$num+20   $ echo $num2   打印出:10+20   $ expr $num + 20   打印出:30      $ num=10   $ declare -i num3   $ num3=$num+90   $ echo $num3   打印出:100 例3:显示出系统中定义的 函数名及函数体   $ declare -F 例4:

初识 Shell脚本

做~自己de王妃 提交于 2019-12-01 22:11:26
摘要 什么是Shell Shell的分类 在linux上搭建Shell编程环境 Shell 如何执行 交互式程序 创建脚本 Shell脚本的参数 Shell脚本的基本元素 指定命令解读器 Shell脚本中的注释和风格 如何执行Shell程序 Shell程序的退出状态 变量和引用 变量的命令 变量的类型 变量和引号 变量的作用域 系统变量 环境变量 变量赋值 引用变量的值 清除变量 引用符号 命令替换 条件测试 条件测试 字符串测试 整数测试 文件测试 逻辑操作符 条件判断语句 多条件判断语句case 运算符 执行算术运算 位运算符 自增/自减运算符 循环结构 带列表的for循环语句 类C风格的for循环语句 什么是Shell 在Linux系统中,Shell是用户与系统内核之间进行交互的接口。 Shell这个单词的意思是“外壳”,它形象地表达出了Shell的作用。在UNIX以及Linux中,Shell就是套在内核外面的一层外壳。正因为有Shell的存在,才向普通的用户隐藏了许多关于系统内核的细节。 Shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。它的作用类似于Windows操作系统中的命令行,但是,Shell的功能远比命令行强大得多。在UNIX或者Linux中,Shell既是用户交互的界面,也是控制系统的脚本语言。 Shell的分类 关于Shell的分类

Linux Shell中\'$\'符号的N种用法

和自甴很熟 提交于 2019-12-01 21:48:45
在Shell中 $ 是一个特殊的字符,在不同场景中有不同的用法。 引用变量 使用 $ 直接引用变量,包括循环变量。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo $x1 双引号 " 括起来的字符串支持变量插值。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo "x = $x"x = 1 使用 ${} 作为单词边界。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# x=1root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "x = ${x}yz"x = 1yz 使用${#}获取变量字符串长度。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# s=helloroot@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "s.length = ${#s}"s.length = 5 引用脚本或函数参数 基于下标的引用方式,0表示shell脚本文件名,n从1开始表示第n个参数,第1个参数是$1。

shell学习笔记

末鹿安然 提交于 2019-12-01 19:48:14
Shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 第一个shell脚本 1 #!/bin/bash 2 echo "Hello World !" #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 echo 命令用于向窗口输出文本。 运行 Shell 脚本有两种方法: 1、作为可执行程序 将上面的代码保存为 test.sh,并 cd 到相应目录: chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: 1 your_name="xieshaoxiong" 2 echo $your_name 3 echo ${your_name} Shell 字符串 字符串可以用单引号,也可以用双引号,也可以不用引号。 str='this is a string' 拼接字符串 your_name="xieshaoxiong" # 使用双引号拼接 greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1 # 使用单引号拼接

shell 笔记

吃可爱长大的小学妹 提交于 2019-12-01 19:36:32
本地变量: 定义:VAR_NAME=VALUE 变量引用:${VAR_NAME} 取消变量:unset VAR_NAME 相当于java中的私有变量(private),只能当前类使用,子类和其他类都无法使用。 环境变量: 自定义的环境变量对当前shell进程及其子shell进程有效,对其它的shell进程无效 定义:export VAR_NAME=VALUE 对所有shell进程都有效需要配置到配置文件中 vi /etc/profile source /etc/profile 相当于java中的protected修饰符,对当前类,子孙类,以及同一个包下面可以共用。 局部变量: 在函数中调用,函数执行结束,变量就会消失 对shell脚本中某代码片段有效 定义:local VAR_NAME=VALUE 相当于java代码中某一个方法中定义的变量,只对这个方法有效。 单引号, 双引号, 反引号 ''单引号不解析变量 ""双引号会解析变量 ``反引号是执行并引用一个命令的执行结果,类似于$(...) 来源: https://www.cnblogs.com/snow-man/p/11714854.html

Linux Shell中\'$\'符号的N种用法

我是研究僧i 提交于 2019-12-01 18:49:08
在Shell中 $ 是一个特殊的字符,在不同场景中有不同的用法。 引用变量 使用 $ 直接引用变量,包括循环变量。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo $x1 双引号 " 括起来的字符串支持变量插值。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo "x = $x"x = 1 使用 ${} 作为单词边界。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# x=1root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "x = ${x}yz"x = 1yz 使用${#}获取变量字符串长度。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# s=helloroot@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "s.length = ${#s}"s.length = 5 引用脚本或函数参数 基于下标的引用方式,0表示shell脚本文件名,n从1开始表示第n个参数,第1个参数是$1。

Linux Shell中\'$\'符号的N种用法

三世轮回 提交于 2019-12-01 18:32:57
在Shell中 $ 是一个特殊的字符,在不同场景中有不同的用法。 引用变量 使用 $ 直接引用变量,包括循环变量。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo $x1 双引号 " 括起来的字符串支持变量插值。 123 root@iZ2ze43t8c5urajez7ws4eZ:~# x=1root@iZ2ze43t8c5urajez7ws4eZ:~# echo "x = $x"x = 1 使用 ${} 作为单词边界。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# x=1root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "x = ${x}yz"x = 1yz 使用${#}获取变量字符串长度。 123 root@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# s=helloroot@iZ2ze43t8c5urajez7ws4eZ:/var/log/nginx# echo "s.length = ${#s}"s.length = 5 引用脚本或函数参数 基于下标的引用方式,0表示shell脚本文件名,n从1开始表示第n个参数,第1个参数是$1。