Bash脚本语法解析(典例精讲)

  参考资料:

  https://github.com/AUTOMATIC1111/stable-diffusion-webui

  https://razeen.me/posts/the-ultimate-programmers-guide-to-bash-scripting/

  众所周知.sh文件是Linux系统中的脚本文件。(与之相对的还有windows系统上对应cmd的bat文件,对应powershell的ps1文件?)因此掌握bash脚本的语法(或许zsh等shell用的也都是.sh文件?)是十分重要的,不求会写,起码要看的懂。下面通过一个我认为非常好的典例来讲解一下bash脚本的语法。1

  1. 美元符号

  美元符号的作用是取变量。例如:

WORLD="helllo world"
echo ${WORLD}

  会打印hello world。

  2. 单引号、双引号和反引号

  单引号会将它框住的任何事物视作字符,双引号在遇到美元符号$和反引号的时候会先翻译,反引号相当于美元符号加括号$(),其作用是将命令的输出取出来。

  3. 单右箭头>和双右箭头>>

  单右箭头表示重定向,会覆盖文件。双右箭头表示追加。

  4. IF语句

   bash脚本中if和then以及fi同时出现。这里有两个需要注意的点,一个是双中括号比单中括号常用的多,见参考资料;另一个是空格问题,在逻辑运算符之间需要加空格,否则会判断为一个字符串而认为是True

  这里需要注意的是双括号里面常常会配合一种叫文件测试表达式的东西:

  以及字符串比较表达式:

  下面是标注的用法和一个典型的例子:

if [ condition-is-true ]
then
  command A
else
  command B
fi

# 或
if [ condition-is-true ]; then
  command A
else
  command B
fi

# 例子:
#!/bin/bash
MY_SHELL="csh"
if [ "$MY_SHELL" = "bash" ]
then
  echo "You are using the bash shell."
else
  echo "You are not using the bash shell."
fi

  5. 逻辑与(&&)和逻辑或(||)

  当逻辑与前面的语句返回的状态码为0时,执行后面的语句

  当逻辑或前面的语句返回的状态码非零(执行失败时),执行后面的语句

posted @ 2024-05-04 16:13  思念殇千寻  阅读(39)  评论(0编辑  收藏  举报