Shell 是面向过程的
(bash为例)
变量是进程的变量,进程结束,变量消失。
bash变量类型:
环境变量
本地变量(局部变量):
位置变量
特殊变量
本地变量: set VARNAME=VALUE
作用域为整个bash进程
局部变量:
local VARNAME=VALUE 作用域为当前代码段
环境变量:作用域为当前shell进程及其子进程
export VARNAME=VALUE
or:
VARNAME=VALUE
export VARNAME
位置变量:
$1
特殊变量:
$? 保存上一个命令执行状态返回值
程序执行,可能有两种返回值:
状态返回代码:(0~255)
0:正确执行
1-255:各种错误执行 ,1, 2 , 127系统预留
echo $? 看看结果
-------------------------------------------
/dev/null : 软件设备,数据黑洞
-------------------------------------------
撤销变量
unset VARNAME
($VARNAME 表示操作值, 不加$表示操作变量)
查看当前shell的变量
set (包括环境变量和本地变量)
查看当前shell中的环境变量:
printenv
env
export
修改变量
GA=aaa
修改:GA=$GA:aa:ss用冒号分隔
变量不做算数运算(默认为字符串保存)
A=3
B=3
C=$A+$B
echo $C // 3+3
linux 只是别ELF的执行文件
脚本文件第一行
shebang: 魔数(根据这个选择shell执行)
#!/bin/bash
如果脚本不能执行:
1. 权限
2. 环境变量(如果不加环境变量,可写绝对路径)
3. 或者直接使用解释器(bash)执行 bash f.sh, 如果想让其独立执行,则必须有执行权限。