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

Linux Shell笔记1 shell编程基础

程序员文章站 2022-07-12 12:10:57
...

shell语言是解释型非强类型语言. Linux Shell不区分变量的类型, 一切都是字符串类型, 变量名不能是数字开头. 变量长度没有限制, 变量可以进行比较操作和整数操作. 整数操作取决于字符串的值是否是数字.

变量的引用需要用$, 且$varname一般和${varname}等效, 但是注意有时变量可能会出现混淆的情况, 此时应该用第二种. shell中的所有变量都是全局的, 即一个shell进程只要声明变量, 那么这个shell进程就可以使用这个变量, 如果想要是局部的, 需要前面添加关键字local. 没有初始化的变量是null类型, 可以看成数字0

shell有强引用和弱引用, 分别是' '" "符号. 强引用会把所有的符号解释成字符, 而弱引用会把变量替换成相应的值, 比如:

#!/bin/sh
a=1
echo '$a'
echo "$a"

执行脚本显示:

$a
1

注意shell关于变量的3个关键词:

  • unset 用于删除一个变量, 删除后就不存在了
  • let let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上$来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。
  • export 把变量导出为环境变量, 但是仅仅在当前脚本生效,

let的例子:

#!/bin/bash
a=1
a=a+1
echo $a

b=1
let "b=b+1"
let b=b+1
echo $b

输出

a+1
3

可以看出, a变成了字符串了, 而b还是执行加法. shell中出现数值计算, 最好使用let.let支持i++i--

IO重定向操作, 需要使用> < 或者是 >> <<, 前两个是覆盖写, 后两个是追加.

Linux直接执行shell命令或者文件的时候, 是创建子进程执行, 子进程执行完毕后, 再返回到主进程. 如果需要在当前进程执行shell脚本, 需要执行source xxx.sh, 这个命令一般是执行配置文件时候使用的.
Linux Shell笔记1 shell编程基础Linux Shell笔记1 shell编程基础
Linux Shell笔记1 shell编程基础
Linux Shell笔记1 shell编程基础
Linux Shell笔记1 shell编程基础
还有一些特殊的作用的命令符号参数:

  • $# 输出变量的个数
  • $? 输出上条命令的结束值
  • $0 输出命令的名字
  • $* 输出命令的所有参数