linux系统下shell命令常用操作
一、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
下一篇: unity3d图形学中的反射