Bash Shell学习笔记一
1.
在Linux中执行脚本文件时 以 ./执行的 或者普通方式(输入文件名)执行时是启动子shell执行的,所以,一切环境变量设置在推出后失效
因此在脚本中设置$PATH将失效,如果一定要以脚本方式来设置,需要 .+空格+文件名或者 source 脚本文件的形式执行.
2.
Linux中的" " 和 ' ',双引号和单引号的区别是,单引号比双引号要严格,双引号会自动解释$开始的变量,而单引号不会.
3.
Linux中将命令执行的结果作为变量可以使用
$(XXX)或者'XXX`,这里'是键盘左上角Tab上面的引号
4.
从字符串头截去字符
${string##XX*} -----从左边开始搜索string变量截去最后一个碰到的XX字符之前的所有内容后剩下的字符
如:
string=asfadfasd
${string##f*}=asd
${string#XX*}--------从左边开始搜索string变量截去第一个碰到的XX字符之前的所有内容后剩下的字符
如:
string=asfadfasd
${string#f*}=adfasd
5.
从字符串尾部截去字符
${string%%XX*} -----从右边开始搜索string变量截去最后一个碰到的XX字符之后的所有内容后剩下的字符
${string%XX*} -----从右边开始搜索string变量截去第一个碰到的XX字符之后的所有内容后剩下的字符
如:
string=asfadfasd
${string%%f*}=as
${string%f*}=asfad
6.
从字符串中去除指定的字符或字符串,替换字符串中指定的字符或字符串
${string/str1/str2} ----将string变量中第一个出现的str1替换为str2
${string//str1/str2}----将string变量中所有出现的str1替换为str2
如:
${linfengfeiye/fe/sc} = linscngfeiye
${linfengfeiye//fe/sc}=linscngsciye
7.
提取字符串
${string:position:length}---提取string变量中从position开始的length个字符(注意下标从0开始)
${string:position}--提取string变量中从position开始到末尾的字符
8.
eval关键字使用:取变量的值所对应的变量值
已知:aaa1=test,A=aaa,B=1
取test
TMP=$A$B
eval T="$"$TMP
echo $T
9.
测试变量字符串长度是否为0(是否为空)
if [ -z $var ] 或者 if [ ! -n $var ]
如:
var=""
if [ -z $var ]
then
echo 1
else
echo 2
fi
得到 1,为空
10.
文件测试选项 (下面都是对应了取真值的例子)
if [ -d $file ] --存在并且是目录
if [ -x $file ] --存在并且可执行
if [ -e $file ] 或者 if [-a $file] --存在
if [ -r $file ] --存在并且可读
if [ -w $file ] --存在并且可写
Bash Shell学习笔记一相关推荐
- Bash Shell学习笔记四
1. 几个常用命令和基本知识. set $(commond) 将位置参数设置为后面的命令输出 shell命令中 在-- 后面的语句将会不再解释后面的 - cal 万年历 bc 计算器 ...
- bash linux .ee,Linux下Bash shell学习笔记.md
### 1.shell下没有变量类型和定义的概念. >1. 变量直接使用不用定义 >2. 所有值都视为字符串. >3. 在对变量取值都需要加$ >4. 行注释为 # + ### ...
- Bash Shell学习笔记五
1.vim的模式下复制与粘贴 视图模式下: shift+d剪切 shift+p粘贴 shift+y复制 按下D可以整行删除 按delele键,可以逐一字符删除. 2.vim中的几个用法 1.搜索上一个 ...
- Bash Shell学习笔记二
1.||.&& 和&.|的区别 ||和&&的执行是从左到右,而&和|的执行是两边到中间的(未实际测试,只能确认它不是按顺序执行的) ||和&&a ...
- Bash shell学习笔记(五)
课程目标 掌握常用的正则表达式元字符含义 掌握sed的删除行操作 掌握sed的打印行操作 掌握sed的增加行操作 掌握sed的修改替换操作 正则表达式 正则表达式介绍 正则表达式(Regular Ex ...
- Bash Shell学习笔记三
1.eval的含义 eval实际上是对后面的算式或者表达式执行两次解释. 例如 a=sc bsc=feiye echo $a eval echo "$"b$a 最后一句实际上是执行 ...
- Bash shell 学习笔记六
vim中统计单词的个数 统计hello单词的个数 :%s/hello/&/g 或 :%s+hello+&+g sed 的一个用法 echo 135.0.1.4|sed 's//./*( ...
- shell学习笔记 (2)
shell学习笔记 (2) ---china.pub.com linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...
- shell学习笔记整理
Shell编程学习笔记 第一章基础知识 1.脚本格式: 1.1"#!" 这个符号的名称,叫做"Shebang"或者"Sha-bang" &q ...
最新文章
- 我国智能家居行业运行现状分析 标准割裂市场
- zen cart如何给新产品、特价、推荐产品页面加标题、关键字、描述
- 大萧条时期什么行业走俏_大流行时期的用户体验
- 的向上取整函数_计算机二级Excel常用函数解析
- Linux 目录文件讲解
- mysql 5.7日志的种类_MySQL中的六种日志类型的介绍
- 安装rpm包完成却报错(桌面软件类安装包),可以在usr/share/applications目录下找到图标打开
- 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
- Kaggle入门预测赛,手写数字识别Digit Recognizer,使用Kaggle kernel作答,F=0.98
- Linux 内核和 Windows 内核有什么区别?
- SQL数据库学习之路(一)
- CondaValueError : prefix already exists: /**/anaconda3
- Win10下使用nvm安装多个版本node.js
- MBTI职业性格测试(Psytopic特别版)
- 咖说 | 新基建中区块链的位置:基础设施的基础技术
- SUMPRODUCT函数使用方法及示例
- 汇率兑换程序python按温度转换_python复习+实例编写(1)——温度转换、汇率转换...
- require()------node js
- 细讲逻辑斯蒂回归与朴素贝叶斯、最大熵原理的爱恨交织(长文)
- Full Transportable Export/Import实验