【第二章】Introducing Shell Scripts
Beginning Shell Scripting 的整理笔记,作为每日晨读
Shell并不是唯一的脚本语言
- Unix系统默认的shell是Bourne-again SHell,作者的名字
- 诸如Python,Perl(长于格式化文件输出),Tcl,DOS(DOS有诸多缺点,比如不支持通配符,不支持重定向输入,我当时写那个批量运行python脚本的bat文件时遇到过)
- 如何选择适合自己的脚本语言
编辑Shell的工具
- vim
基本语法
-
echo
echo -n "xxx"
可以去掉换行符,默认有换行
-
变量
-
总结:存的时候不加
$
,取的时候加 -
赋值
- 不像DOS,需要加
set
,Bash直接variable=value
即可,注意等号两端不能有空格 - 如果没空格不用加双引号,有空格的话需要加
- 可以用read读入,比如
read DIR
- 不像DOS,需要加
-
使用
-
加一个
$
,变量就会如C语言的#define一般原地展开,无论它是什么(好像if的时候有例外,记得以前碰到过,这本书第三章会讲) -
因此,可以用变量来组成命令
-
LS=ls DIR=/$HOME $LS $DIR
-
-
-
注释
- 不要使用insulting connotations(有侮辱性内涵的内容),不然会名垂青史。当时MacOS发布,有些脚本的注释中用到
luser
(loser的谐音),有人投诉原文中说keeping the lusers from doing something stupid
,但实际上它是local user
的缩写
- 不要使用insulting connotations(有侮辱性内涵的内容),不然会名垂青史。当时MacOS发布,有些脚本的注释中用到
-
Backslash用于continue line(反斜杠可以延续一行)