Shell脚本之:变量】的更多相关文章

shell脚本-高级变量 字符串变量切片 ${#var}: 返回字符串变量var的长度 ${var:offset}: 返回字符串变量var中从第offset个字符后(不包括第offset 个字符)的字符开始,到最后的部分,offset 的取值在0到 ${#var}-1 之间(bash4.2 后,允许为负值) ${var:offset:number}: 返回字符串变量var中从第offset个字符后(不包括第offset 个字符)的字符开始 ,长度为number 的部分 ${var: -lengt…
一.shell脚本特殊变量 1.shell中常用特殊位置变量说明: $0 获取当前执行的shell脚本的文件名,如果执行脚本包含了路径,那么就包含了脚本路径 $n 获取当前执行的shell脚本的第n个参数值,n=1-9,表示第1,...,9个参数值,当n大于9时,则用大括号{ } 括起来,如${10},脚本接的参数以空格隔开 $# 获取当前执行的shell脚本后面接的参数总个数 $* 获取当前shell脚本所有传参的参数,不加双引号时,与$@的作用相同,加双引号时,如"$*",则表示将…
目录: 前言 如何创建一个脚本 脚本调试 变量相关 变量的命令规则 bash中变量的种类 本地变量 环境变量 只读和位置变量 位置变量 查询变量 进程的退出状态与状态码 前言 在linux管理中,shell脚本很是重要,它可以帮助我们完成很多繁琐的工作,专注于更重要的事情上来,脚本的学习也是我们学习linux中所要遇到的比较困难的部分,因为它需要对vim,正则,逻辑,程序化语言有一定的熟悉,shell编程是过程式,解释执行的.它包括各种系统指令的组合,数据存储(变量,数组).表达式.语句. 在s…
(1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.(2)Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止.函数定义的变量可以被显示定义成local的,其作用域局限于函数内.但请注意,函数的参数是local的.(3)如果同名,Shell函数定义的local变量会屏蔽脚本定义的global变量.…
跟着RUNOOB网站的教程学习的笔记 shell变量 shell变量的命名 定义变量时,变量名不加美元符号($,PHP语言中需要),如: name="runoob" 注意,变量名与等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的 命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字母不能以数字开头. 中间不能有空格,可以使用下划线代替你想要的空格(例如your_name). 不能加标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字…
1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/shell$ cat how_to_use_shell.sh #!/bin/bash ls / 2,如何执行shell? >把shell文件当做bash的命令行参数 ghostwu@dev:~/linux/shell$ ls -l total -rwxrwxr-x ghostwu ghostwu 5月…
一直对shell脚本有一种特殊的感觉,因此花了一段时间学习,本人擅长C语言编程,深受C语言荼毒,在学习其他任何类似于编程语言的东东的时候,都会不自觉的与C进行对比,因此对于shell中的变量的作用域一直有点疑问,在此总结一下: 首先,脚本的变量声明相比于C来说还是比较简单好用的,跟python有的一拼,没有那么复杂的用法,直接说明然后使用,无论是字符串还是数字都一样.但是本着严谨的态度,对于变量的声明和使用,还是希望有需要的时候声明使用,不需要的时候,立马舍弃丢掉,一刻不多留,这就需要了解she…
shell脚本中的变量定义,引用各有不同的方式,除此之外,很常用的有文件属性判断,逻辑运算,数值运算等,下面记录一下它们的属性作用 变量 shell变量的定义分为两种:一种是直接赋值定义,另一种是嵌套指令调用赋值: name=yufu : 直接定义赋值 time=`date` : 指令嵌套赋值 $name $time : 调用变量 此外变量还分局部变量和全局变量,局部变量只对当前bash环境有效,环境变量全局有效,上面的定义方式是定义局部变量,全局变量定义方式如下 name=yufu expor…
本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287 首先从一个例子说起: x=1+1 echo $x 你是不是期待着输出2啊?让你失望了,这样输出的结果是1+1.为什么呢?这是因为在shell script中变量类型默认为“字符串”,所以若不指定变量类型,1+1是一个“字符串”而不是“计算式”.那么怎么得到我们想要的结果呢?方法很多,但是总结起来就是两种,一种就是生命变量的类型.另一种是对特定的计算式进行处理. 1)首先看第…
Shell脚本 1. 基本的几个变量 使用$?获取最近一次的执行结果: 使用$#获取传递的参数个数,类似C语言中的int argc; 使用$@获取所有的传参,类似C语言的char **argv 2. 获取一个命令的结果是否为空 场景:在某个目录查找是否包含某个文件 一般使用双引号("")将变量括起来.将多个变量化为一个字符串,否则测试时可能会有warning ################################################################…
$ # 传递到脚本的参数个数$ * 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个$ $ 脚本运行的当前进程I D号$ ! 后台运行的最后一个进程的进程I D号$ @ 与$ #相同,但是使用时加引号,并在引号中返回每个参数$ - 显示s h e l l使用的当前选项,与s e t命令功能相同$ ? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误. 以下转自: shell中的${},##和%%的使用 假设我们定义了一个变量为:file=/dir1/dir…
与Shell变量相关的几个命令: 变量只在当前Shell中生效. source 这个命令让脚本影响他们父Shell的环境(. 可以代替source命令) export 这个命令可以让脚本影响其子Shell的环境  () unset 从环境中删除变量 其他几个与变量有关的命令: declare: 用于显示或设置变量 let: 用于求整数表达式的值 local: 用于创建不能传给子Shell的变量, 这个命令仅在过程内部有效 readonly: 用于显示或者设置只读变量 set: 用于设置或者重置各…
$0 这个程式的执行名字$n 这个程式的第n个参数值,n=1..9$* 这个程式的所有参数,此选项参数可超过9个.$# 这个程式的参数个数$$ 这个程式的PID(脚本运行的当前进程ID号)$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)$? 执行上一个指令的返回值 (显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误)$- 显示shell使用的当前选项,与set命令功能相同$@ 跟$*类似,但是可以当作数组用 示例: 1 #!/bin/bash  2 #  3 p…
1.linux系统环境 echo 'echo /etc/profile ' >> /etc/profile echo 'echo /etc/bashrc' >> /etc/bashrc echo 'echo /root/.bashrc ' >> /root/.bashrc echo 'echo /root/.bash_profile ' >> /root/.bash_profile vi /etc/profile #在文件的最后插入 export VAR9=…
1,$$:显示当前的进程id号 ghostwu@dev:~/linux/shell/how_to_use_var$ cat show_pid.sh #!/bin/bash echo $$ ghostwu@dev:~/linux/shell/how_to_use_var$ bash show_pid.sh & [] ghostwu@dev:~/linux/shell/how_to_use_var$ ghostwu@dev:~/linux/shell/how_to_use_var$ ps -ef |…
$0        Shell本身的文件名$1-$n 添加到Shell的各参数值.$1是第1参数.$2是第2参数…$$        Shell本身的PID(ProcessID) $!         Shell最后运行的后台Process的PID$?        上个命令的退出状态,或函数的返回值$- 使用Set命令设定的Flag一览$*         所有参数列表,不包括脚本本身.如"$*"用「"」括起来的情况.以"$1 $2 … $n"的形式输出…
shell脚本中变量定义方式十分简单,直接将值赋值给变量较好例如 :name="tuanzhang"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.变量命名规则 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头. 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字(可用help命令查看保留关键字). 没必要死记硬背,一般按照平时java命名习惯命名就好. 变量使用使用一个定义过的变量,只要在变量名前面加美元符号即可,…
http://www.jbxue.com/article/shell/20707.html本文介绍了shell脚本传递变量到另一个脚本文件中的方法,在脚本中调用另一脚本,即创建了一个子进程,感兴趣的朋友参考下.一,有如下的shell脚本.father.sh 复制代码 代码示例:#!/bin/bash echo "this is the father"FILM="A Few Good Men" echo "I like the film : $FILM&qu…
在shell脚本一 中,我讨论了shell脚本的语法规范,shell脚本的变量,以及shell脚本的测试语句. 仅仅懂得这些只能写简单的脚本,在简单的脚本中各条语句按顺序执行,从而实现自动化的管理,顺序单一执行太过机械化,不够“智能”,难以实现更加灵活的系统任务.甚至一个简单的场景:现有100台linux服务器,其中有50台安装过某软件,有50台没有安装过某软件.如果没有流程控制及循环方面的脚本知识,如此简单的问题,也变得非常低效.所以本文带你走进shell脚本的流程控制及循环的世界.  一.多…
Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境   [root@SZDB ~]# more /etc/issue   CentOS release 5.9…
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码 代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \…
关于shell脚本的基本语法 整理于:2014-03-31,何俭飞,mymladdr@sina.com 一.执行 1.shell脚本如果要被执行,一般地必须要有执行权限"x"(除了使用特殊的执行方式不需要外) 2.shell脚本执行的方式有以下几种: ①--参数式执行1:/bin/sh createFiles.sh(不需要x权限),简写为"sh createFiles.sh" ②--参数式执行2:/bin/bash createFiles.sh(不需要x权限),简写…
本文需要实现的功能如下:某文件夹下具有由按数字编号命名的文件夹,需要删除除最大编码外的文件. 具体实现 大致思路:循环遍历该文件夹下所有文件,正则匹配出最大编码文件:然后循环文件,删除除最大编码外的文件. 实现代码如下: #!/bin/bash function getdir(){ max= DATEPATTERN="^[0-9]*$" ` do if [[ "$element" =~ $DATEPATTERN ]] then ] then max=$element…
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到shell脚本文件中 复制代码代码如下: --演示环境  [root@SZDB ~]# more /etc/issue  CentOS release 5.9 (Final)  Kernel \r on an \m…
  目录                                                          Vim文本编辑器 Shell脚本 Shell编程变量 流程控制语句 计划任务服务程序 参考资料 XUQ 2019.3.27 初稿 Vim文本编辑器                                                   1.为什么要使用文本编辑器? “在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数”.而且在日常工作中大家…
Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参考了网上的很多教程,外加自己的测试,以下脚本经测试可用.#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab#Author…
有这样一个py文件,需要传一个字典作为参数: import json import sys def parse_params(data): json_data = json.loads(data[1]) print json_data if __name__=='__main__': params = sys.argv print params parse_params(params) 命名为sp.py,运行的时候传入如下参数: #python sp.py '{"mode":"…
Linux系统目录结构 目录 描述 备注 /bin a.存放着最经常使用的命令 b.可执行文件,用户命令 c.构建最小系统所需要的命令 /boot a.内核与启动文件 b.系统启动相关文件 c.启动Linux时的一些核心文件 /dev a.各种设备文件 b.设备文件 c.Linux系统的外部设备 /etc a.配置文件 b.系统管理所需要的配置文件 c.系统软件的启动和配置文件 /home a.用户的主目录,每个用户有自己的一个目录 b.用户的家目录 c.用户的主目录 /lib a.c编译器的库…
#Linux系统Shell脚本判断变量文件目录:权限.是否存在.空值.相等 1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真str1 != str2 当串str1和str2不等时为真-n str1 当串的长度大于0时为真(串非空)-z str1 当串的长度为0时为真(空串)str1 当串str1为非空时为真 2.数字的判断 int1 -eq int2 两数相等为真int1 -ne int2 两数不等为真int1 -gt int2 int1大于int2为真int1 -ge i…
阿里云大学 shell脚本从入门到精通 第1 章 : shell脚本编程-变量-算术表达式-判断语句-if分支语句 第2 章 : case-for-While-双括号-循环嵌套-break-continue 第3 章 : shift命令-shell函数-shell脚本实战 第4 章 : 正则表达式-awk-sed使用方法…