#!/usr/sh
#1、声明即赋值 注意:等号两边不能留空格,留了空格就编程一个命令+两个参数
varName=name
#2、使用变量
$varName
${varName}
shell 内变量在shell的解析环境中存在的变量全局范围的变量(全局变量)shell中*不使用任何修饰符修饰的变量*都是全局变量不管实在函数内还是在函数外都一样从申明语句调用开始一直到脚本结束,都是其声明周期局部变量用loca修饰只能生命在函数内从声明语句调用开始一直到函数结束
环境变量操作系统自带的,每个进程都会有(env查看)当启动一个子进程的时候,环境变量是从父进程拷贝到子进程的。子进程做任何环境变量的修改,不会影响父进程环境变量是单向传递的export varName=value或者varName=valueexport varName
删除变量不管是环境变量还是普通的shell内变量都可以使用unset 变量名 删除进程
#!/usr/bash
#全局变量
globalVar="hello"function test(){globalVar2="hello2" #不使用任何修饰符修饰的都是全局变量local localVar="world"echo $localVar #输出world
}
#调用函数
test
echo $globalVar $globalVar2
#输出 hello hello2
#!/bin/bash
echo 下面调用子脚本
#该子脚本相对路径。绝对路径都可以
source ./subShell.sh
touch 1.txt 2.txt 3.txt 4.txt
touch {1,2,3,4}.txt
#eg1
touch {3..5}_{2..5}.txt
#eg2
mkdir -vp day{1..3}/{logFile.log,log.txt,log.note}
#查看当前文件夹内容
find .


由"`"反引号括起来的也是一条命令,shell先执行该命令,然后将输出结果立刻代换到当前命令行中。例如定义一个变量存放date命令的输出
DATE=`date`
echo "DATE=" $DATE
#命令代换也可以用$()表示
DATE=$(date)
echo $DATE
使用(())做算术计算,(())中的shell变量取值将转换成整数,同样含义的(())做算术计算,(())中的shell变量取值将转换成整数,同样含义的(())做算术计算,(())中的shell变量取值将转换成整数,同样含义的[]等价
var=45
#执行下面命令,输出结果48
echo $((var+3))
echo $[var+3]或者$[$var+3]
#进制转换(将10以8进制来解析,得到的是10进制的8,加上11等于19)
echo $[8#10+11]
用于去除单个字符的特殊意义(回车除外),换句话说。紧随其后的单个字符取字面值
#创建一个文件夹名为"$ $"的文件($间含有空格)可以这样
touch \$ $
\r \n
\$SHELL
shell脚本汇总的单引号双引号都是字符串的界定符,单引号用于保持括号内所有字符的字面值。即使引号内的\和回车也不例外。但是字符串中不能出现单引号
#输出结果$hello world
echo '$hello world'
被双引号括住的内容,将被视为单一字符、他防止通配符扩展,这点与单引号的处理方式不同
#输出结果是/bin/bash
echo "$SHELL"
param="i'm param"
echo "$param"
下一篇:rocketMq介绍和安装