快速学习网站建设,网站改版报告,同时做网站建设和代账,企业级局域网搭建变量 变量赋值不用$#xff0c;访问值时用$,赋值时两边不留空格#xff0c;双引号括起来的变量被值替换{}标记变量开始和结束,变量名区分大小写#xff0c;所有bash变量的值变量不区分类型#xff0c;统一为字符串 变量类型 环境变量#xff0c;子进程可以继承父进程环境… 变量 变量赋值不用$访问值时用$,赋值时两边不留空格双引号括起来的变量被值替换{}标记变量开始和结束,变量名区分大小写所有bash变量的值变量不区分类型统一为字符串 变量类型 环境变量子进程可以继承父进程环境变量子进程传递不到父进程全局变量(变量默认类型)不能在子进程传递局部变量(用local声明)只在函数范围内 输出变量 set所有变量env环境变量export 变量 将一个shell变量提升为环境变量unset删除变量 执行脚本方式 ./文件 打开子shell执行文件命令bash [-x] 文件 开子进程source 文件 . 文件 不开子进程 默认变量 $0调用文件名$1第一个命令行参数$2$3…$#参数个数不包括$0$*全部参数不包括$0)$$进程PID号$?命令执行后返回状态
main.sh
#! /usr/bin/bashexport env1kdfsdkf
g1443223function a() {local l12432klf
}aecho ---main---
echo env1 $env1
echo g1 $g1
echo l1 $l1./sub1.shecho ---main---
echo env1 $env1
echo g1 $g1
echo l1 $l1
echo env2 $env2
echo g2 $g2
echo l2 $l2./sub2.sh
echo ---main---
echo env1 $env1
echo g1 $g1
echo l1 $l1
echo env2 $env2
echo g2 $g2
echo l2 $l2
echo env3 $env3
echo g3 $g3
echo l3 $l3sub1.sh
#! /usr/bin/bashexport env29798fds
g2dsfaffunction b() {local l2kjl89
}becho ---sub1---
echo env1 $env1
echo g1 $g1
echo l1 $l1
echo env2 $env2
echo g2 $g2
echo l2 $l2sub2.sh
#! /usr/bin/bashexport env3af9dflkh
g3bvcbxcxfunction c() {local l3vcbnpp
}cecho ---sub2---
echo env1 $env1
echo g1 $g1
echo l1 $l1
echo env2 $env2
echo g2 $g2
echo l2 $l2
echo env3 $env3
echo g3 $g3
echo l3 $l3输出
---main---
env1 kdfsdkf
g1 443223
l1
---sub1---
env1 kdfsdkf
g1
l1
env2 9798fds
g2 dsfaf
l2
---main---
env1 kdfsdkf
g1 443223
l1
env2
g2
l2
---sub2---
env1 kdfsdkf
g1
l1
env2
g2
l2
env3 af9dflkh
g3 bvcbxcx
l3
---main---
env1 kdfsdkf
g1 443223
l1
env2
g2
l2
env3
g3
l3