首页 新闻 会员 周边

echo \$(hostname) 为啥报未知错误token `('

0
[已关闭问题] 关闭于 2026-01-04 16:53

$ 的转义结果是:让 $ 变成普通字符(字面量)。字面量的 $ 字符,不再具有“变量/命令替换”的功能。

\$(...)并把 (hostname) 单独当作一个 token

echo $ (hostname)

即三个 tokens:

  • echo
  • $ (一个孤立的美元符号)
  • (hostname) (一个子 shell 命令)

孤立的 $ 在命令位置是非法的,$ 作为一个孤立的 WORD,在语法上并不违法!

Shell 允许你写:echo $

Shell 报错时,通常会指出 第一个让它困惑的符号。由于 (hostname) 是一个整体,它就把 ( 拿出来报错:

syntax error near unexpected token '('

但实际上,根本原因是前面那个无意义的 $ 导致语法结构崩溃

*Tesla*的主页 *Tesla* | 小虾三级 | 园豆:1324
提问于:2026-01-04 16:52
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册