shell函数

Shell变量基础详解

橙三吉。 提交于 2019-11-29 06:53:24
一、变量简介 变量是暂时存储数据的地方及数据标记,所存储的数据存在于内存空间中,通过正确地调用内存空间中变量的名字就可以取出与变量对应的数据。使用变量的最大好处就是使程序开发更为方便,当然,在编程中使用变量也是必须的。否则就很难完成相关的工作。 变量赋值的方式:先写变量名称,紧接着就是“=”,最后是值。 “=”号前后不允许有空格。 一般情况下,定义变量时,需要给变量的值带双引号,以防止出错,特别是当值的内容中有空格时,必须带双引号。 二、变量的类型 变量可分为两大类: 环境变量 也可称为全局变量,可以在创建它们的Shell及其派生出的任意子shell中使用。环境便令也可分为自定义环境变量和bash内置的环境变量; 普通变量 也可称为局部变量,只能在创建它们的shell函数或shell脚本中使用。 三、环境变量 环境变量一般是指用“export”内置命令导出的便令,用于定义Shell的运行环境,保证Shell命令的正确执行。 环境变量可以在命令行设置和创建,但用户退出命令行时,这些变量值也会随之丢失,因此,如果希望永久保存环境便令,可在用户家目录下的.bash_profile或.bashrc文件中,或者全局配置/etc/profile或/etc/bashrc 文件中。在讲环境变量放入以上文件中,每次用户登录时这些变量都将被初始化。 按照系统规范,所有的环境的名称均采用大写形式

Linux之Shell编程(16)

你。 提交于 2019-11-29 05:35:58
读取从控制台输入的值(read): 系统函数:   basename:返回完整路径最后/部分,常用于获取文件名     basename [pathname] [suffix]        dirname:返回完整路径最后/的前面部分,常用于返回路径部分      自定义函数:    来源: https://www.cnblogs.com/az4215/p/11456767.html

linux Shell(待学)

无人久伴 提交于 2019-11-29 05:04:24
2. Shell 2.1 简介 shell脚本执行方式Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。它类似于 DOS 下的 command 和后来的 cmd.exe。Shell 既是一种命令语言,又是一种程序设计语言。 Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell脚本编程,不是指开发 shell 自身。 Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Linux 的 Shell 种类众多,一个系统可以存在多个 shell,可以通过 cat /etc/shells 命令查看系统中安装的 shell。 Bash 由于易用和免费,在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。 2.2快速入门 1 编写脚本 新建 /root/test/shell/01.sh 文件 #!/bin/bash​echo 'hello world' # !是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。 echo 命令用于向窗口输出文本。 2 解释器 java 需要 虚拟机解释器, 同理 shell脚本也需要 解析器 [root@node04 shells]# cat

shell习题-18

我只是一个虾纸丫 提交于 2019-11-29 04:58:11
题目要求 提示用户输入网卡的名字,然后我们用脚本输出网卡的ip,需要考虑下面问题: 输入的字符不符合网卡名字规范,怎么应对。 名字符合规范,但是根本就没有这个网卡又怎么应对。 参考答案 #!/bin/bash ip add |awk -F ': ' '$1 ~ "^[1-9]" {print $2}' > /tmp/eth.list while : do eths=`cat /tmp/eth.list |xargs` read -p "Please input a if name(The eths is `echo -e "\033[31m$eths\033[0m"`): " eth if [ -z "$eth" ] then echo "Please input a if name." continue fi if ! grep -qw "$eth" /tmp/eth.list then echo "The if name is error." continue else break fi done if_ip() { ip add show dev $1 |grep ' inet ' |awk '{print $2}'|awk -F '/' '{print $1}' >/tmp/$1.txt n=`wc -l /tmp/$1.txt|awk '{print $1}'` if [

【shell教程02】Shell 变量、shell字符串、shell数组、shell注释

血红的双手。 提交于 2019-11-29 04:44:29
一、Shell 变量 1、定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name="runoob.com" 注意, 变量名和等号之间不能有空格 ,这可能和你熟悉的所有编程语言都不一样。同时,变量名的 命名 须遵循如下 规则 : 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字)。 有效的 Shell 变量名示例如下: RUNOOB LD_LIBRARY_PATH _var var2 无效的变量命名: ?var=123 user*name=runoob 除了显式地直接赋值,还可以用语句给变量赋值,如: for file in `ls /etc` 或 for file in $(ls /etc) 以上语句将 /etc 下目录的文件名循环出来。 2、使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: your_name="qinjx" echo $your_name echo ${your_name} 变量名外面的花括号是可选的,加不加都行 ,加花括号是为了帮助解释器识别变量的边界 ,比如下面这种情况: for skill in Ada Coffe Action Java; do echo "I am

shell编程

早过忘川 提交于 2019-11-29 03:51:25
shell编程 shell编程能做什么 1)安装操作系统(手动安全ISO) 自动化安装(kickstart cobbler)shell脚本 2)初始化操作系统 优化(SSH优化、关闭SElinux、优化防火墙、NTP时间同步、更改默认YUM、源字符集、安装常用的软件 lrzsz net-tools tree.. wget、隐藏版本信息、加大文件描述符、内核优化...)初始化写入脚本 自动化执行 3) 安装服务(Nginx PHP MySQL MariaDB NFS sersync REDIS keepalived docker....zabbix)使用shell脚本自动选择安装 4) 启动----停止(centos6.x: /etc/init.d/server start;centos7.x:systemctl start server) 系统默认的启动方式 shell脚本 5) 监控 zabbix、cacti、nagios、ELK、公司研发的监控平台;监控的值(shell脚本统计) 6) 日志统计 三剑客 日志切割(脚本+定时任务) 初识Shell 什么是shell pwd ls 都是通过bash解释的、Shell是一个命令解释器,作用是解释执行用户输入的命令及程序 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互

微信企业号 发送信息 shell

人走茶凉 提交于 2019-11-29 03:34:08
微信企业号发送信息shell #可作为shell函数模块调用,用于微信通知、jenkins发版微信通知等等 # 微信API官方文档 https://work.weixin.qq.com/api/doc#90002/90151/90854 #!/bin/bash # wechat.send.sh # 微信企业号发送信息 shell # blog https://www.cnblogs.com/elvi/p/11444388.html ############################## function sendmsg() { CorpID="wwe518*企业微信账号唯一ID" Secret="自定义应用的密钥" AgentId=1000004 #应用id Url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret" Gtoken=$(curl -s -G $Url|awk -F\" '{print $10}') PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken" [ `echo $Gtoken |wc -L` -gt 100 ] || { echo "get

shell scripts之算数运算详解

佐手、 提交于 2019-11-29 02:43:14
算数运算符如下: 运算操作符与运算命令: 1、双小括号“( ( ) )”数值运算命令 双小括号“ ( ( ) ) ”的作用是进行数值运算与数值比较,它的效率最高,用法灵活,是经常被采用的运算操作符,其操作方法如下: 执行echo$((a++))和echo$((a--))命令输出整个表达式时,输出的值即为a的值,表达式执行完毕后,会对a进行++、--的运算,而执行echo$((++a))和echo$((--a))命令输出整个表达式时,会先对a进行++、--的运算,然后再输出表达式的值,即为a运算后的值。 注意:有关++、--运算的记忆方法: 变量a在运算符之前,输出表达式的值为a,然后a自增或自减;变量a在运算符之后,输出表达式会先自增或自减,表达式的值就是自增或自减后a的值。 “(())”表达式在命令行执行时不需要加$符号,直接使用((6%2))形式即可,但是如果需要输出,就要加$符,例如:echo$((6%2))。 “(())”里的所有字符之间没有空格、有一个或多个空格都不会影响结果。 使用举例: [root@localhost ~]# echo $(( 6+2 )) #加法 8 [root@localhost ~]# echo $(( 6-2 )) #减法 4 [root@localhost ~]# echo $(( 6*2 )) #乘法 12 [root@localhost

shell scripts之算数运算详解

。_饼干妹妹 提交于 2019-11-29 02:42:47
算数运算符如下: 运算操作符与运算命令: 1、双小括号“( ( ) )”数值运算命令 双小括号“ ( ( ) ) ”的作用是进行数值运算与数值比较,它的效率最高,用法灵活,是经常被采用的运算操作符,其操作方法如下: 执行echo$((a++))和echo$((a--))命令输出整个表达式时,输出的值即为a的值,表达式执行完毕后,会对a进行++、--的运算,而执行echo$((++a))和echo$((--a))命令输出整个表达式时,会先对a进行++、--的运算,然后再输出表达式的值,即为a运算后的值。 注意:有关++、--运算的记忆方法: 变量a在运算符之前,输出表达式的值为a,然后a自增或自减;变量a在运算符之后,输出表达式会先自增或自减,表达式的值就是自增或自减后a的值。 “(())”表达式在命令行执行时不需要加$符号,直接使用((6%2))形式即可,但是如果需要输出,就要加$符,例如:echo$((6%2))。 “(())”里的所有字符之间没有空格、有一个或多个空格都不会影响结果。 使用举例: [root@localhost ~]# echo $(( 6+2 )) #加法 8 [root@localhost ~]# echo $(( 6-2 )) #减法 4 [root@localhost ~]# echo $(( 6*2 )) #乘法 12 [root@localhost

shell脚本中的数学运算

半城伤御伤魂 提交于 2019-11-29 00:58:57
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法。以后用到的时候能够来看,呵呵 1、错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1。依旧悲剧,呵呵 2、正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2。这次没有悲剧 注意: a)经我測试let差点儿支持全部的运算符,在网上看到一篇文章说“let不支持++、--和逗号、(、)”,但经我測试自加、自减、以及括号的优先级都得到了非常好的支持 b)方幂运算应使用“**” c)參数在表达式中直接訪问,不必加$ d)普通情况下算数表达式能够不加双引號,可是若表达式中有bash中的keyword则需加上 e)let后的表达式仅仅能进行整数运算 2)使用(()) var=1 ((var+=1)) echo $var 输出结果为2 注意: (())的用法与let全然同样 3)使用$[] var=1 var=$[$var+1] echo $var 输出结果位2 注意: a)$[]将中括号内的表达式作为数学运算先计算结果再输出 b)对$[]中的变量进行訪问时前面须要加$ c)$[]支持的运算符与let同样,但也仅仅支持整数运算 4)使用expr