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
    • 使用

      • 加一个$,变量就会如C语言的#define一般原地展开,无论它是什么(好像if的时候有例外,记得以前碰到过,这本书第三章会讲)

      • 因此,可以用变量来组成命令

      •   LS=ls
          DIR=/$HOME
          $LS $DIR
        
  • 注释

    • 不要使用insulting connotations(有侮辱性内涵的内容),不然会名垂青史。当时MacOS发布,有些脚本的注释中用到luser(loser的谐音),有人投诉原文中说keeping the lusers from doing something stupid,但实际上它是local user的缩写
  • Backslash用于continue line(反斜杠可以延续一行)