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学习笔记一相关推荐

  1. Bash Shell学习笔记四

    1. 几个常用命令和基本知识. set $(commond)          将位置参数设置为后面的命令输出 shell命令中 在-- 后面的语句将会不再解释后面的 - cal 万年历 bc 计算器 ...

  2. bash linux .ee,Linux下Bash shell学习笔记.md

    ### 1.shell下没有变量类型和定义的概念. >1. 变量直接使用不用定义 >2. 所有值都视为字符串. >3. 在对变量取值都需要加$ >4. 行注释为 # + ### ...

  3. Bash Shell学习笔记五

    1.vim的模式下复制与粘贴 视图模式下: shift+d剪切 shift+p粘贴 shift+y复制 按下D可以整行删除 按delele键,可以逐一字符删除. 2.vim中的几个用法 1.搜索上一个 ...

  4. Bash Shell学习笔记二

    1.||.&& 和&.|的区别 ||和&&的执行是从左到右,而&和|的执行是两边到中间的(未实际测试,只能确认它不是按顺序执行的) ||和&&a ...

  5. Bash shell学习笔记(五)

    课程目标 掌握常用的正则表达式元字符含义 掌握sed的删除行操作 掌握sed的打印行操作 掌握sed的增加行操作 掌握sed的修改替换操作 正则表达式 正则表达式介绍 正则表达式(Regular Ex ...

  6. Bash Shell学习笔记三

    1.eval的含义 eval实际上是对后面的算式或者表达式执行两次解释. 例如 a=sc bsc=feiye echo $a eval echo "$"b$a 最后一句实际上是执行 ...

  7. Bash shell 学习笔记六

    vim中统计单词的个数 统计hello单词的个数 :%s/hello/&/g 或 :%s+hello+&+g sed 的一个用法 echo 135.0.1.4|sed 's//./*( ...

  8. shell学习笔记 (2)

    shell学习笔记 (2) ---china.pub.com  linux shell电子书学习笔记 第2章 使用find和xargs find pathname -options [-print - ...

  9. shell学习笔记整理

    Shell编程学习笔记 第一章基础知识 1.脚本格式: 1.1"#!" 这个符号的名称,叫做"Shebang"或者"Sha-bang" &q ...

最新文章

  1. 我国智能家居行业运行现状分析 标准割裂市场
  2. zen cart如何给新产品、特价、推荐产品页面加标题、关键字、描述
  3. 大萧条时期什么行业走俏_大流行时期的用户体验
  4. 的向上取整函数_计算机二级Excel常用函数解析
  5. Linux 目录文件讲解
  6. mysql 5.7日志的种类_MySQL中的六种日志类型的介绍
  7. 安装rpm包完成却报错(桌面软件类安装包),可以在usr/share/applications目录下找到图标打开
  8. 面向对象设计模式纵横谈:Prototype 原型模式(笔记记录)
  9. Kaggle入门预测赛,手写数字识别Digit Recognizer,使用Kaggle kernel作答,F=0.98
  10. Linux 内核和 Windows 内核有什么区别?
  11. SQL数据库学习之路(一)
  12. CondaValueError : prefix already exists: /**/anaconda3
  13. Win10下使用nvm安装多个版本node.js
  14. MBTI职业性格测试(Psytopic特别版)
  15. 咖说 | 新基建中区块链的位置:基础设施的基础技术
  16. SUMPRODUCT函数使用方法及示例
  17. 汇率兑换程序python按温度转换_python复习+实例编写(1)——温度转换、汇率转换...
  18. require()------node js
  19. 细讲逻辑斯蒂回归与朴素贝叶斯、最大熵原理的爱恨交织(长文)
  20. Full Transportable Export/Import实验

热门文章

  1. Web Worker的最好文章
  2. Apache Hive
  3. Android Status(状态栏) 着色
  4. IT技术分类和就业特点
  5. 如何在ASP.NET Core应用中实现与第三方IoC/DI框架的整合?
  6. Mongoose Schemas定义中timestamps选项的妙用
  7. 002 Spring Restful案例
  8. 《C语言深度解剖》学习笔记之符号
  9. 管理用户和PROFILE——用户方案和profile
  10. DELL6224交换机基本配置命令明细