linuxShellStudyNote

1 Shell 中的变量

  • 使用declare声明变量

    declare var_name=var_value

    # declare -i var_name 将定义的变量定义为整数型变量

    # declare -r var_name 声明的变量为只读 变量

    # declare -p var_name 显示指定变量的属性和值

    # declare -x var_name 将指定的变量通过环境输出到后续命令

  • 清除变量

    unset var_name # unset function_name 清除变量或函数

2 变量的引用

`` # 反引号,shell会将反引号中的内容视作命令,并用指向结果代替反引号以及反引号中的内容

'' #单引号,全引用,单引号中的所以内容都不会被解释成其他意思,只保留显示的意义

""# 双引号,半引用,双引号中的内容处理 `` '' "" $ \ 之外,均保留显示的意义

取变量的值

  • 使用 $var_name # 获取变量的值,可能会出错
  • 使用 ${var_name} # 推荐使用这种方式获取变量的值

3 算术表达式

  • 使用let

    let var=" var + 1"

    let var=${var}+3

    # 使用let时如果要在运算符左右使用空格,那么必须加上双引号

    # 使用let 使用可以使用$,也可以不实用$

  • 使用 expr

    var=`expr $var1 \* $ var2`

    # **实用expr时运算符左右必须实用空格,变量必须使用$ **

  • 使用 $(())

    var=$(( var1 +${var2} ))

    # 可以使用$,也可以不使用$,运算符左右可以使用空格也可以不适用空格

  • 使用$[]

    var=$[ ${var1}+ var2 ]

    # 可以使用$,也可以不使用$,运算符左右可以使用空格也可以不适用空格

  • 使用 bc

    # 前面的集中方法只能用于处理整数而不能用于处理浮点数运算

    # bc 提供任意精度的计算

    • 1 直接使用外部程序 bc

    • 2 使用管道

      res=` echo "${var1}/10 + 2*(3-5*4)" | bc -l `

4输入输出

  • read 输入

    read -r var1 var2

  • printf 格式化输出

    printf "%.3f\n" ${var}

5命令替换

  • `shell_command`
  • $(shell_command)

6测试

  • 字符串测试

    # 字符串测试

  • 整数测试

    # 整数测试

  • 文件测试

    # 文件测试

7函数

1定义

func_name(){
  statment1
  statment2
}
# or
function func_name(){
  statment1
  statment2
}

2调用

func_name arg1 arg2 arg3

3函数链接/函数调用函数

helloWord(){
  echo "Hello World"
}
function alice(){
  echo "in allice"
  helloWord()
  echo "end"
}
#调用函数
allice()

4函数返回值

Shell 中的函数的返回值必须是0-255之间的整数,即函数只能返回状态码

函数的返回值可以通过$?来获取

5获取函数参数

# $# 获取参数的个数
# $n 获取第n个参数,其中n为正整数
# $@ $* 获取所有参数
# 移动位置参数
# shift

function func(){
  while (( $# > 0 ))
  do
      echo "${1}"
      echo $#
      #shift改变$#的值
      shift
  done
}
#间接参数传递
var1=var2
var3=var1
echo ${!var3}
#output var2
# 传递数组
# shell 不支持传递数组,但是可以通过其他方式传递数组的值
func_name "${arr[@]}"
# 双引号必须加,否则会出错
# 调用其他文件的函数
#! /bin/bash
#载入函数库
. file_name.sh
# dot 后面必须有**空格**

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 4,770评论 0 0
  • Bash内置基本变量 PWD : 显示当前的工作目录 OLDPWD : 显示上一次的工作目录 ~:用户家目录 - ...
    魏镇坪阅读 5,426评论 0 6
  • 一、shell脚本介绍 1.1 开头(环境使用shebang机制) #!/bin/bash 必须写在文件首行 符号...
    优果馥斯阅读 8,714评论 0 1
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,214评论 0 11
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 8,299评论 4 97