Shell 概述

Posted kimbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell 概述相关的知识,希望对你有一定的参考价值。

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/bash

echo "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/bash

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

运行结果:

以上是关于Shell 概述的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本 片段

vue2.0 代码功能片段

nodejs常用代码片段

Reactreact概述组件事件

sh shell片段

常用python日期日志获取内容循环的代码片段