linux shell 引号 参数,shell(三)变量,基本语法,单双引号
shell中的变量
变量的声明:在shell中变量不需要事先声明,不必显示声明
变量的赋值:VAR=value,不允许有空格。如:a=100
变量的数据类型:shell中的变量无数据(弱)类型!同一变量可以存放不同类型的值。
如:a=1.25a=100a=“Hello”
变量的获取:在shell中使用$或者${},如:$date,${date}
Unset:用于删除已经定义的环境变量或本地变量。Unset变量名bash的使用技巧
shell维护一个可以用alias和unalias内建命令来设置或者取消别名列表。用alias命令不带选项的时候显示当前shell所知的别名列表。
自定义时,等号两边不能有空格:alias list=‘ls -l’alias
lsh=‘ls *.shBourne shell保留变量
变量名
定义
auto_resume
这个变量控制shell如何与用户交互和作业控制。
BASH
用于执行当前Bash实例的全路径。
BASH_ENV
如果这个变量在Bash调用执行一个shell脚本时已被设置,它的值将被展开并用作在执行脚本前读取的启动文件名。
BASH_VERSION
当前Bash实例的版本号。
BASH_VERSINFO
一个只读变量数组,它的成员保存这个Bash实例的版本信息。
COLUMNS
select内建命令来决定打印选择列表时终端宽度。在收到SIGWINCH信号时自动设置。
COMP_CWORD
包含当前光标位置的字的${COMP_WORDS}的一个索引。An index into ${COMP_WORDS} of the word containing the current cursor position.
COMP_LINE
当前命令行。
COMP_POINT
指明相对于当前命令起点的当前光标位置。
COMP_WORDS
一个由当前命令行中单个词组成的变量数组。
COMPREPLY
一个变量数组,Bash从中读取由一个可编程完整设备调用的一个shell函数生成的可能的完成。An array variable from which Bash reads the possible completions generated by a shell function invoked by the programmable completion facility.
DIRSTACK
一个保存当前目录栈内容的变量数组。
CDPATH
一个由冒号分割的目录列表作为内建命令cd的搜索路径。
HOME
当前用户的home目录;默认为内建命令cd。这个变量的值同样被~扩展使用。
IFS
分割域的一个字符的列表;用于shell把词分开作为扩展。
如果这个变量设成一个文件名并且MAILPATH变量没有设置,Bash在指定文件中通知用户邮件的到达。
MAILPATH
一个用冒号分隔的文件名列表,shell周期性地从这个文件里检测新邮件。
OPTARG
getopts内建命令处理的最后的选项参数的值。
OPTIND
最后一个由getopts内建命令处理的选项参数的索引号。
PATH
一个用冒号分隔的目录列表,shell从这些目录里寻找命令。
PS1
主要提示符。默认值是“'\s-\v\$ '”。
PS2
次要提示符。默认值是“'> '”。特殊Bash变量
字符
定义
$*
展开为位置参数,从1开始。当扩展发生在双引号时,它展开成一个单独的词,每个参数的值由IFS特殊变量的第一个字符分隔。
$@
展开为位置参数,从1开始。当在双引号里展开时,每个参数展开成独立的词。
$#
把位置参数展开为十进制数字。
$?
展开成最近执行的前台管道程序的退出状态。
$-
一个连字符展开为当前选项标志 内部命令集 或者那些shell自己的集(如-i)
$$
展开成shell的进程ID。
$!
展开成最近在后台(异步)执行的命令的进程ID。
$0
展开成shell或者shell脚本名。
$_
下划线变量在shell启动时设置,包含shell的绝对文件名或者作为参数列表被执行的脚本。随后,它展开为前一个命令扩展后的最后一个参数。它同样设置为每个执行程序的全路径,放在那个命令的输出环境中。当检查邮件时,这个参数保存邮件文件的名字。shell中的输入与输出
转义字符:“\”
避免下一个字符被shell解释
echo常见-n(禁用转义字符) -e(可以使用转义字符)
#!/bin/bash
echo
-e "this 3 lines\n\n\n"
echo
"ok"
echo
"enter you name:"
read
name
echo
"enter you password:"
read
password
echo
$name $passwordshell中的命令行替换
替换
语法
含义
历史
!
前一个命令行
大括号
{}
指定的文本
代字号
~username
用户的主目录
变量
$,${...}
shell和环境变量
算术
$((...))
算术运算
命令替换
`...`,$(...)
运行在子shell中的命令的输出
路径名
*,?,[...],[^...]
文件系统中匹配的文件名
shell命令行的扩展与替换-路径名替换
通配符
用于匹配的字符称为通配符,例如:
*匹配任意字符或字符串,包括空字符串
?匹配任意一个字符
[...]匹配方括号中列出的任何单字符
如:
ls /dev/ttyS*
ls test0?.txt
ls test[0-2].txt
ls test[012][0-9].txt
shell命令行的扩展与替换-命令替换
命令替换
命令替换允许一个命令的输出来替换这个命令本身。命令替换在一个命令这样封装的时候发生:
$(command)或`command` (老式语法)
如:
date=$(date)
echo $date
shell命令行的扩展与替换-单引号与双引号
单引号(‘’)用于保持在引号内的每个字符的字面值。
双引号保持引号内的所有字符的字面值,除了$,``,\
算术替换用于算术计算:$(())中的shell变量取值将换成整数,如:var=45echo $(($var+3))注意只能用+-*/和(),并且只能做整数计算。shell测试语句条件测试:test或者[ ]可以用test或者[ ]测试一个条件是否成立,如果测试结果为真,则该命令退出状态为0,如果为假,状态为1。通过echo$?来输出结果文件测试格式:test option file或者[ option file ]
-b file测试文件是否为块设备文件-c file测试文件是否为字符设备文件-d file测试文件是否为目录-ffile测试文件是否为普通文件-e file测试文件是否存在-r file测试文件是否可读-s file测试文件是否非空-w file测试文件是否为可写-x file测试文件是否可执行示例:test-d /home/jerryecho $?结果为0,说明jerry是一个目录-a:逻辑与,操作符两边均为真,结果为真,否则为假。-o:逻辑或,操作符两边至少一边为真,结果为真,否则为假。!:逻辑否,条件为假,结果为真。示例:判断主目录中的文件install.log是否同时具有写入和执行的权限。test -w install.log -a-x install.logecho $?整数比较格式:testint1operatorint2-eq数值相等。-ne数值不相等。-gt第一个数大于第二个数。-lt第一个数小于第二个数。-le第一个数小于等于第二个数。-ge第一个数大于等于第二个数。示例:test8-eq3echo $?字符串测试格式:test option string或者[option string]=两个字符串相等。!=两个字符串不等。-z测试字符串是空字符串。-n测试字符串是非空字符串。s1 = s2相等s1 != s2 s1与s2不同s1 < s2s1的ASCII在s2前s1 > s2 s1的ASCII在s2后If语句i f语句测试条件,测试条件返回真(0)或假(1)后,可相应执行一系列语句。简单的if语句是:i f条件then命令f i注意:使用i f语句时,必须将t h e n部分放在新行,否则会产生错误。如果要不分行,必须使用命令分隔符。
现在简单i f语句变为:if条件;t h e n命令f ii f语句其格式为:if条件1then命令1elif条件2then命令2else命令3f icase语句c a s e语句为多选择语句。
可以用c a s e语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。c a s e语句格式如下:case值i n模式1)命令1. . .;;模式2)命令2. . .;;e s a c取值后面必须为单词i n,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至;;取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号*捕获该值,再接受其他输入。模式部分可能包括元字符,与在命令行文件扩展名例子中使用过的匹配模式类型相同,
即:*任意字符。?任意单字符。[..]类或范围中任意字符。for循环f o r循环一般格式为:for变量名i n列表d o命令1命令2⋯d o n e当变量值在列表里,f o r循环即执行一次所有命令,使用变量名访问列表中取值。命令可为任何有效的s h e l l命令和语句。变量名为任何单词。i n列表用法是可选的,如果不用它,f o r循环使用命令行的位置参数。i n列表可以包含替换、字符串和文件名,下面看一些例子。#!/bin/bashfor char in ab c d edoecho $chardone
或者#!/bin/bash#example:for cyclefor strdoecho $strdone./example.sha b c d ewhile循环w h i l e循环用于不断执行一系列命令,也用于从输入文件中读取数据,其格式为:
while命令d o命令1命令2. . .d o n e
linux shell 引号 参数,shell(三)变量,基本语法,单双引号相关推荐
- java sql 引号_java拼接sql语句里的单双引号
一.场景描述 平时在用字符串拼接sql语句的时候,有没有遇到过下面的情况: 没错,就是单双引号问题.其实,关于双引号我们是容易理解的,sql语句是用String字符串拼接的,因此需要用到双引号.但是为 ...
- Shell 脚本 — 多行注释、开启子/不开启子进程执行、转义带颜色输出、读取键盘输入、输入输出重定向、单双引号、命令替换、读取变量、系统变量、正则过滤、算术运算、一行多条命令、字符串比较
1. 多行注释 #!/bin/bash<< COMMENT This is multi line comment COMMENTecho "This is demo script ...
- Shell脚本,环境变量,位置变量,预定义变量,自定义变量,单引号双引号反引号用法,一般变量和交互式变量read定义,密文输入变量信息
Shell脚本,变量,系统预设的环境变量,位置变量,预定义变量,用户的自定义变量 一.定义变量 1.以固定的名称存放可以变化的值 2.格式为 变量名=变量值 3.取消变量的格式 unset 变量名 4 ...
- Linux单双引号嵌套引发的小问题
单双引号如何嵌套使用 最近有个小需求需要统计下ES中的文本结果,编辑和未编辑文本的占比,由于直接统计ES中的结果,这里直接写了个DSL查询脚本,初版脚本如下 curl -XGET 127.0.0.1: ...
- 单双引号与双引号之间的变量解析情况
/*双引号可以解析变量 双引号包含单引号--在双引号之间的'$a'看做了一个整体*/ $a = 'Hello World!'; echo "'$a'"; 输入结果 'Hello W ...
- php单双引号的区别与foreach 遍历
php单双引号的区别: (核心代码) $age = 123; echo '$age' 输出结果是 $age; echo "$age" 输出结果的是 123; 总结: echo 输出 ...
- 【php基础入门】运算符、流程控制语句及单双引号区别和模块化编程的使用详解
目录 字符串的单引号和双引号区别 PHP 运算符 算数运算符 字符运算符 关系运算符 逻辑运算符 赋值运算符 错误抑制符 三元运算符 PHP 流程控制 分支语句 循环语句 模块化编程 今日相关函数 今 ...
- DM8联机逻辑备份perl脚本实现要点(单双引号、system和disql)
概要 此文章非完整脚本功能分享,仅就实现逻辑备份功能进行分享. 问题背景 在编写DM8自动化备份perl脚本中,在涉及联机物理库级备份时,需要执行相关操作,正常情况下,相应语句如下(已简写,便于理解) ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
最新文章
- 26.2. Web UI
- aspen软件对电脑的要求_BIM软件对电脑配置的要求——Fuzor软件对电脑配置的要求...
- 指定类型的成员XX”不支持实体LINQ。只有初始化,成员单位,和实体导航性能的支持。...
- MEGA 视频目标检测 数据集 : ILSVRC2015 VID 说明
- gridview 在已有数据的基础上添加数据_基于Python的数据分析-1.语法基础(上)
- hdu-6165(tarjan+topusort)
- Chapter 4 : 单行函数
- 图像处理笔记(十八):模板匹配
- BCH编码——c语言代码
- 计算机类专业本科学生成长四阶段必读四本书推荐
- new bmap.label支持html,百度地图api使用文档marker标注label使用
- Mybatis的一个连接mysql的坑
- Windows10官网原版系统下载地址汇总
- Vue使用Swiper看这一篇就够了
- Vue项目axios在IE浏览器报promise错误的解决办法
- mac屏幕录像怎么录-ScreenFlow for mac完整安装-screenflow录屏录声音的方法
- Handlebars.js的下载及使用示例
- 无法安装64(32)office,已经安装32(64)office解决方法
- LINQ之Update
- 历史名人鲁迅介绍HTML个人网页作业作品下载 历史人物介绍网页设计制作 大学生英雄人物网站作业模板 dreamweaver简单个人网页制作
热门文章
- react领域里面jsx中的style的值为什么放到了{}中
- 大数据开发初学者学习路线_初学者的Web开发路线图
- api工具 graphql_为什么GraphQL是API的未来
- 残疾人软件开发_更高级别的可访问性:我使freeCodeCamp指南对残疾人可用的5种方式...
- 109_Power Pivot客户ABC(帕累托)分析度量值写法(非计算列)
- 图解高性能服务器开发两种模式,第四章 NETTY高性能架构设计
- python Scrapy 从零开始学习笔记(一)
- MySQL的初识(python开发者的第一印象)
- MongoDB高级——复制(副本集)
- 《scikit-learn》SVM(二)数据不均衡