欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

linux系统下shell命令常用操作

程序员文章站 2022-06-18 10:36:45
linux shell脚本一、echo的使用testecho.sh#!/bin/bashecho "Hello shell!"执行代码 ./文件;若首次执行需要添加执行权限,chmod +x 文件名root@llei-virtual-machine:/home/llei# ./testecho.shroot@llei-virtual-machine:/home/llei# Hello shell!二、shell变量1、变量:......

一、echo的使用
testecho.sh

#!/bin/bash echo "Hello shell!" 

执行代码 ./文件;若首次执行需要添加执行权限,chmod +x 文件名,

root@llei-virtual-machine:/home/llei# ./testecho.sh
root@llei-virtual-machine:/home/llei# Hello shell! 

二、shell变量
1、变量:变量名和等号之间不能有空格

your_name="tom" 

2、使用变量表示方式:echo $variable_name 或者 ${variable_name}

echo $your_name #输出:tom echo ${your_name} #输出:tom 

3、只读变量:使用readonly命令;如 readonly variable_name, 简单理解变量不可被更改

#!/bin/bash name='Tom' readonly name
name="alice" 

执行

llei@llei-virtual-machine:~$ ./testshell002.sh ./testshell002.sh: 行 4: name: 只读变量 

4、删除变量:unset var_name

三、shell字符串
1、shell字符串:单引号/双引号:双引号可以有变量和转义字符,单引号则不能

#!/bin/bash name='Tom' echo "双引号:My \name is $name" echo '单引号:My name is $name' 

输出

llei@llei-virtual-machine:~$ ./testshell002.sh
双引号:My $name is Tom
单引号:My name is $name 

2、字符串拼接:单引号/双引号拼接

name='Tom' #双引号 echo "Hello, " $name "!" #单引号 echo 'Hello,' $name '!' 

输出

Hello, Tom ! Hello, Tom ! 

3、获取字符串长度:echo ${#string}

#!/bin/bash name='Tom' echo ${#name} #输出:3 

4、查找字符串:echo expr index "$string" io 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个)

#!/bin/bash name='Tom' echo `expr index "$name" o` #输出:2 

5、提取字符串:echo ${string: 1 :4} 从字符串string第2个开始截取4个字符

#!/bin/bash name='Hello Tom' echo ${name:1:4} #输出:ello 

6、字符串的其他截取:
① # | ## :#表示从左边删除到第一个指定的字符; ##表示从左边删除到最后一个指定的字符
②% | %% :%表示从右边删除到第一个指定的字符; %%表示从右边删除到最后一个指定的字符

 #!/bin/bash url="http://www.abc.com/123.html" #单个 #表示从左边删除到第一个指定的字符;,下面即删除 http:// echo ${url#*//} #输出:www.abc.com/123.html #两个 ##表示从左边删除到最后一个指定的字符 echo ${url##*/} #输出:123.html #单个 %表示从右边删除到第一个指定的字符; echo ${url%/*} #输出:http://www.abc.com #两个 %%表示从右边删除到最后一个指定的字符 echo ${url%%/*} #输出:http: 

四、注释
1、单行注释:#

#这是一个单行注释 

2、多行注释:其中的EOF可以换成其他符号;注意收尾一样就可以了

:<<EOF

这是第一行
这是第二行 ... 这是第N行

EOF 

五、shell数组(数组中可以写入变量)
1、定义组:数组名=(值1 值2 值3 … 值n); 单独定义 :数组名[0]=值1 …

array_name=("Tom" 1 2 "windows" "ios" "android") 

2、获取数组元素个数 : length=KaTeX parse error: Expected '}', got '#' at position 2: {#̲array_name[@]} …{#array_name[**]}*

#获取数组array_name的长度,其中的@可以为 * echo ${#array_name[@]} #输出:6 

3、取得单个数组元素的长度 : length=${#array_name[n]}

#获取数组中的第5个元素的长度 echo ${#array[4]} #输出:3 

4、读取数组格式: ${array_name[index]}

my_array=(A B "C" D) #读取数组 echo "第一个;${my_array[0]}" echo "第二个;${my_array[1]}" echo "第三个;${my_array[2]}" echo "第四个;${my_array[3]}" 

输出

第一个;A
第二个;B
第三个;C
第四个;D 

5、获取数组中所有的元素: @或 * ${array_name[@]}或者 ${array_name[*]}
6、传参实例

echo "传递参数实例"; echo "执行的文件名: $testshell.sh"; echo "第一个参数:$1"; echo "第一个参数:$2"; echo "第一个参数:$3"; 

运行时在文件后跟上需要传递的参数

llei@llei-virtual-machine:~$ ./testshell002.sh 1 2 3
传递参数实例
执行的文件名: ./testshell002.sh
第一个参数:1
第一个参数:2
第一个参数:3 

本文地址:https://blog.csdn.net/qq_39926166/article/details/107821035

相关标签: linux shell