🎨Bash基础入门与应用

Shell执行方式

bash hello.sh #方式一
cat hello.sh | bash #方式二
bash < hello.sh #方式三
chmod +x hello.sh #方式四
 
#方式五
source hello.sh
#source有一个简写形式,可以使用一个点(.)来表示。
 
#方式六,远程加载执行
curl -s http://localhost/hello.sh |bash
 
#wget方式
wget -qO - http://localhost/hello.sh|bash

配置文件

全局,针对所有用户

/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
 
#只针对个人
~/.bash_profile
~/.bashrc

环境变量

常用环境变量

BASHPID:Bash 进程的进程 ID。

DISPLAY:图形环境的显示器名字,通常是:0,表示 X Server 的第一个显示器。

IFS:词与词之间的分隔符,默认为空格。

LANG:字符集以及语言编码,比如zh_CN.UTF-8。

PATH:由冒号分开的目录列表,当输入可执行程序名后,会搜索这个目录列表。

SHELL:Shell 的名字。

SHELLOPTS:启动当前 Shell 的set命令的参数,参见《set 命令》一章。

TERM:终端类型名,即终端仿真器所用的协议。

内置变量:PS1,PATH,UID,HOSTNAME,$$,BASHPID,PPID,$?,HISTSIZE

位置、特殊变量

$1,$2 #对应参数

$0 #命令本身

$* #全部参数命为一个字符串

$@ #每个参数为独立字符串

$# #传递给脚本的参数的个数

$? #0代表成功

$? 值 1-255 #代表失败

$$ #当前SHell的进程ID

$_ #为上一个命令的最后一个参数

$! #为最后一个后台执行的异步命令的进程ID

$- #当前Shell启动参数

$? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。

用户自定义变量

变量引用

· $name

弱引用,变量引用会被替换为变量值

· ${name}

强引用,不会替换为变量值,保持原字符

如果变量的值本身也是变量,使用${!varname}读取最终的值

脚本调试

字符串操作

判断

注意 [ ] 需要空格,否则会报错误

[ ]和[ [ ] ]的区别是,双括号是增加版,支持正则表达式和通配符

read

-p 指定要显示的提示

-s 静默输入,一般用于密码

-n N 指定输入的字符长度N

-d '字符' -t N 输入结束符 TIMEOUT为N秒

流程控制

条件判断case语句

循环

定义函数

Last updated

Was this helpful?