博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell 概述、截取字符操作等
阅读量:4673 次
发布时间:2019-06-09

本文共 1806 字,大约阅读时间需要 6 分钟。

Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互。

Linux的Shell种类众多,常见的有:

  • Bourne Again Shell (/bin/bash)
  • Bourne Shell(/bin/sh或/usr/bin/sh)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)

Bourne Again Shell (Bash) 由于易用和免费,在日常中被广泛使用。同时也是大多数Linux系统默认的Shell。

 

第一个 Shell脚本

使用文本编辑器vi/vim ,新建一个文件 kimbo_test.sh, 扩展名.sh 代表Shell。 

ps: 扩展名并不影响脚本执行,用于标识(见名知意)

#!/bin/bashecho "Hello World!"

"#!" 是一个约定标记,告诉系统需要什么解释器执行,即使用哪一种Shell

  • 加执行权限 chmod +x vi kimbo_test.sh
  • 执行: sh kimbo_test.sh
  • 返回结果:Hello World!

Shell 只有单行注释,使用符号 "#"


 

Shell 变量

1.定义:必须使用字母、下划线

2.使用: 用美元符号 "$" ,加上变量名

#!/bin/bash## 定义变量my_name="kimbo"## 打印变量echo ${my_name}

说明:大括号用来表明变量的边界,也可以 直接使用 $my_name 。为了可读性、防止歧义,建议使用大括号

Shell 字符串

单引号:属于强引用,任何字符都会原样输出

双引号:属于弱引用,可以解析变量、转义字符 (尽可能使用双引号)

  1. 拼接字符串
#!/bin/bash## 定义变量my_name="kimbo"my_work="data analysis"## 拼接变量my_result="my name is ${my_name},my work is ${my_work}."## 打印变量echo ${my_result}

  2.获取字符串长度

#!/bin/bash## 定义变量my_name="kimbo"## 打印变量,取字符串长度echo ${#my_name}

  3.截取部分字符

语法:${str:start:len},start表示从哪里开始截取,len表示 总共截取多少位。

  • 左边第一个字符用 0 表示,右边第一个字符用 0-1 表示
#!/bin/bash## 定义变量my_name="kimbo"## 打印变量,从左边第2个字符开始,截取3位echo ${my_name:1:3}

   4. 其他截取方式

语法:

${var#*str} 最小限度从左边截取str

${var##*str} 最大限度从左边截取str
${var%str*} 最小限度从右边截取str
${var%%str*} 最大限度从右边截取str

#!/bin/bash##定义变量my_website="https://www.cnblogs.com//kimbo"## 打印变量echo "var is: ${my_website}"## 从左边开始查找,截取右边的字符(保留后面)   ## 最小限度echo "1: ${my_website#*//}"   ## 最大限度echo "2: ${my_website##*//}"## 从右边开始查找,截取左边的字符(保留前面)   ## 最小限度echo "3: ${my_website%//*}"   ## 最大限度echo "4: ${my_website%%//*}"

运行结果:

 

   5. 字符替换

    i) 首次替换:${var/source_str/dest_str}

    ii)全部替换:${var//source_str/dest_str}

#!/bin/bashtest_str="this is kimbo,he is a humor guy. by kimbo zhang."echo "单替换:${test_str/kimbo/kobe}"echo "全部替换:${test_str//kimbo/kobe}"

运行结果:

转载于:https://www.cnblogs.com/kimbo/p/6362665.html

你可能感兴趣的文章
ssh注解basedao简单的实现
查看>>
RGB配色表
查看>>
Dance GAN 迁移不同视频中人物动作的方法
查看>>
artDialog组件与iframe
查看>>
xBIM 实战02 在浏览器中加载IFC模型文件并设置特效
查看>>
【中国剩余定理】【容斥原理】【快速乘法】【数论】HDU 5768 Lucky7
查看>>
Session变量不能传送到下一页.解决: session.use_trans_sid = 1
查看>>
现代Java Web开发框架分析
查看>>
markdown的使用说明
查看>>
【8086汇编基础】04--中断
查看>>
Mvc不等于三层架构
查看>>
EnableViewState
查看>>
间接赋值从0级指针到1级指针
查看>>
C# socket通讯使用域名的方法
查看>>
yii2 默认访问的控制器
查看>>
iOS7 CookBook精彩瞬间(三)UIActivityViewController的基本使用及自定义Activity
查看>>
DOM--1 遵循最佳实践
查看>>
[HNOI2013]游走
查看>>
车林通购车之家--购车计算器模块--车型弹窗
查看>>
sizzle源码分析 (2)ID 类 tag querySelectorAll 快速匹配
查看>>