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 字符串
单引号:属于强引用,任何字符都会原样输出
双引号:属于弱引用,可以解析变量、转义字符 (尽可能使用双引号)
- 拼接字符串
#!/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 概述的主要内容,如果未能解决你的问题,请参考以下文章