加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Shell笔记

发布时间:2020-12-13 22:28:06 所属栏目:Linux 来源:网络整理
导读:#!/bin/ bashvar2 = ' var2 ' echo $var2 ${var2}var2 = var2_1 ' #变量可以重复定义但变量名前不加$var3 = var3 readonly var3 #将var3声明为只读变量#var3 = var3_1 这里就不能再改变var3的值了var4 = var4 unset var4 #删除var4变量# ${var4} 这里不能再
#!/bin/bash
var2 = 'var2'
echo $var2
 ${var2}
var2 = var2_1' #变量可以重复定义但变量名前不加$

var3 = var3
readonly var3 #将var3声明为只读变量
#var3 = var3_1 这里就不能再改变var3的值了

var4 = var4
unset var4 #删除var4变量
# ${var4} 这里不能再调用var4了

var5 = var5
var6 = "This is ${var5}"       #拼接字符串
var7 = This is "$var5,too #拼接字符串

var8 = itvar8 ${#var8} #输出var8的长度,即输出6

var9 = Hello World!echo ${var9:1:5} #从字符串第2个字符开始截取5个字符

var10 = echo `expr index $var10 World` #查找字符World在字符串中的位置

arr1 = (var1' ) #定义数组方式1
arr2 = (                           #定义数组方式2
    '
        
)

var3[1] =             #通过下标赋值

var_arr_1 = ${var2[1]}  #读取数组元素
var_arr_all = ${var2[@]}#读取所有元素

arr_lend_1 = ${#var2[@]} #获取数组长度
arr_lend_2 = ${#var2[*]} #获取数组长度

向脚本传递参数

#!/bin/bash
echo 执行的文件名$0;
第一个参数为$1第二个参数为$2";

?

  运行:

$ chmod +x shell.sh 
$ ./shell.sh 1 2
执行的文件名shell.
第一个参数为1
第二个参数为2

  特殊参数:

参数处理     说明
$#     传递到脚本的参数个数
$*     以一个单字符串显示所有向脚本传递的参数。
如$*"用「」括起来的情况、以"$1 $2 … $n的形式输出所有参数。
$$     脚本运行的当前进程ID号
$!     后台运行的最后一个进程的ID号
$@     与$*相同,但是使用时加引号,并在引号中返回每个参数。
如$@1" 2"$n 的形式输出所有参数。
$-     显示Shell使用的当前选项,与set命令功能相同。
$?     显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

  

算术运算:

  原生bash不支持简单的数学运算,但是可以通过其他命令来实现,比如awk和expr

#!/bin/bash

a=10
b=20
val=`expr $a + $b`
a + b : $val"

?

文件测试运算符:

  -r file :文件是否可读

  -w file: 文件是否可写

  -x file: 文件是否可执行

file=/workplace/shell/shell.sh"
if [ -r $file ]
then
   文件可读else
   文件不可读fi
if [ -w $文件可写文件不可写if [ -x $文件可执行文件不可执行fi

?

echo命令:

#!/bin/bash

read name   #read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
 $name

Hello World" > myfile #显示结果定向至文件 

?

流程控制:

  if的语法:

if condition1
then
    command1
elif condition2 
 
    command2
else
    commandN
fi

  for的语法:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

  while的语法:

while condition

    command
done

  例:

#!/bin/sh
int=1
while(( $int<= ))
do
        echo $int
        let int++done

  case的语法:

输入 1 到 4 之间的数字:你输入的数字为:
read aNum
case $aNum in
    1)  你选择了 1
    ;;
    2)  你选择了 23)  你选择了 34)  你选择了 4
    ;;
    *)  你没有输入 1 到 4 之间的数字
    ;;
esac

  

函数

funWithParam(){
    第一个参数为 $1 !"
    第二个参数为 $2 !第十个参数为 $10 !第十个参数为 ${10} !第十一个参数为 ${11} !参数总数有 $# 个!作为一个字符串输出所有参数 $* !
}
funWithParam 2 3 4 5 6 7 8 9 34 73

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读