【问题标题】:How does Linux bash/shell read the command we give to it?Linux bash/shell 如何读取我们给它的命令?
【发布时间】:2021-08-26 02:16:56
【问题描述】:

例如,如果我发送bash -c " echo "$S" "

它是如何读取命令的,从左到右,或者从左到右一起读到中间?不然呢?

如果不是太多,能否一步一步列出,比如linux bash/shell如何读取和处理它接收到的每一个字符和符号?

【问题讨论】:

  • shell解析和扩展步骤详解in POSIX
  • @thatotherguy 这对我来说意义重大,非常感谢。

标签: linux bash shell


【解决方案1】:

假设您从 bash shell 发出此命令,并且变量 S 包含值 x y

首先,变量被扩展,这会让你得到

bash -c " echo "x      y" " 

然后,引号被扩展。因此,您剩下 4 个令牌:

  • 狂欢
  • -c
  • echo x(一个前导空格)
  • y (即 y 后跟一个空格)

接下来,启动另一个 bash,参数为 -c echo xy

这个 bash-subshel​​l 现在将执行 echo 命令并打印 x y

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2015-09-03
    • 2011-01-24
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多