我不明白为什么在 Bash 中:
echo $(hostname --fqdn)
作品,echo $(id -un)
沒有(id: –un: No such user
)。
反引号给出相同的结果。
有没有使用这种符号的良好做法?id 命令在这种用法上有什么特别之处吗?
以下是它在其他系统上运行的一些细节:
lsb_release -a
:SUSE Linux Enterprise Server 11(x86_64),which id
:/usr/bin/id,id -un
单独工作。
答案1
我注意到发布的命令之间存在细微的差别:
echo $(id -un)
以及它的错误消息:
id: –un: No such user
两个“连字符”不同,第二个连字符稍长一些。错误消息似乎是从原始命令中复制粘贴的,但命令是重新输入的。原始命令很可能包含错误的连字符。这解释了为什么没有人能够重现错误消息。
此类错误大多有两个原因:
代码是从网站上复制而来的,使用错误的格式化程序/语法高亮器进行排版。
代码是在不合适的编辑环境中输入的,例如 Microsoft Word。Word 可能会将您输入的内容更改为排版更佳但出乎意料的变体,例如不同的连字符、不同的引号或其他空格符号。
巧的是,刚刚有一场人气竞赛代码高尔夫其中一个答案使用了类似的“技巧”来产生甚至不可见的差异:https://codegolf.stackexchange.com/a/23258/16287