Linux shell向命令传递了多少个参数:

Linux shell向命令传递了多少个参数:,linux,shell,Linux,Shell,我想知道shell向命令传递了多少个参数: echo "It's "'funny how'" it's done." 它是1个参数,因为第一个“关闭”在s之后,而第二个“关闭”在s之后,所以第一个“匹配最后一个” 为了 Bash根据序列将其输入转换为令牌 引用 扩展(大括号扩展、波浪形扩展、参数和变量扩展、命令替换、算术扩展、分词和路径名扩展) 将以上内容应用于:回显“It's”“滑稽的方式”“It's done.”: 取消引用将导致3处替换(“*”表示引用的空格) 双引号是* 单引号

我想知道shell向命令传递了多少个参数:

echo "It's "'funny how'" it's done."  
它是1个参数,因为第一个“关闭”在s之后,而第二个“关闭”在s之后,所以第一个“匹配最后一个”

为了


Bash根据序列将其输入转换为令牌

  • 引用
  • 扩展(大括号扩展、波浪形扩展、参数和变量扩展、命令替换、算术扩展、分词和路径名扩展)
将以上内容应用于:
回显“It's”“滑稽的方式”“It's done.”

  • 取消引用将导致3处替换(“*”表示引用的空格)
  • 双引号
    是*
  • 单引号
    有趣*how
  • 单引号
    *完成了。
  • 单词spliting查找要分隔为参数的无引号空格。如果没有(不带引号的)空格,则将上述所有内容合并为一个参数<代码>它是如何完成的很有趣。
  • 请注意,正如问题所暗示的,引用不是嵌套的(例如,双引号中的单引号没有特殊含义)

    后面的
    pig
    (“*”是带引号的空格,“.”是不带引号的空格)

  • 取消引用将导致两个替换(“*”表示引用的空格)


  • 未加引号的
    可能与、和朋友重复。另请参见中的。您说“我不明白为什么将5个参数传递给命令”,然后显示“通过shell传递给命令的6个参数”。为什么你说5,但显示6?不是
    集合之间的数据引用--“它是”有趣的“它是如何完成的”;echo$#;布景--“很有趣”,“搞定了。”;echo$#
    。($#是shell可见的参数数,
    set--
    将以下内容作为当前shell进程的参数,因此您也可以执行
    echo$3
    等操作。祝您好运。不要发布代码、数据、错误消息等的图像-将文本复制或键入问题。
    "<bar bar -b "-a" '-r' >bar bar bar"
    
    6   arguments passed to command by shell