给定在普通 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
这巴什维基很好地解释了这一点。释义:
- 读取数据执行
- 流程报价
- 将读取的数据拆分为命令
- 解析特殊运算符
- 执行扩展
- 将命令拆分为命令名称和参数
- 执行命令