![Bash 解析命令时的“操作顺序”是什么?](https://linux22.com/image/44412/Bash%20%E8%A7%A3%E6%9E%90%E5%91%BD%E4%BB%A4%E6%97%B6%E7%9A%84%E2%80%9C%E6%93%8D%E4%BD%9C%E9%A1%BA%E5%BA%8F%E2%80%9D%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
给定在普通 bash 提示符下输入的命令,一旦按下 Enter 键,bash 如何读取该行?它先进行变量替换然后命令替换吗?或者它首先进行 bash 扩展?或者是什么?
给出下面的命令,bash 从头到尾做什么?
for i in *.meow; do
cat <<WUTLOL
FILE ${PWD}/$i
WUTLOL
scp $i $(grab_server.sh kitten_blast{1..3}):
done
答案1
这巴什维基很好地解释了这一点。释义:
- 读取数据执行
- 流程报价
- 将读取的数据拆分为命令
- 解析特殊运算符
- 执行扩展
- 将命令拆分为命令名称和参数
- 执行命令