当前位置: 首页 > 面试题库 >

在Bash中,为什么x = 100 echo $ x不打印任何内容?

邓夕
2023-03-14
问题内容

我看到了这样的代码:

fqdn='computer1.daveeddy.com'

IFS=. read hostname domain tld <<< "$fqdn"
echo "$hostname is in $domain.$tld"
# => "computer1 is in daveeddy.com"

我认为它有效,因为在第三行中将其IFS分配给.了。

x=100  echo $x

但发现bash不能打印任何内容,而我希望它可以打印100..

而且,我发现x=100 echo $x; echo $xprint什么都没有,而x=100; echo $xprints 100却很混乱。

有人对此有想法吗?


问题答案:

运行 将其$x展开,并将结果作为参数传递给。在其环境中不使用的值。 __echo``echo``echo``x

在第一个示例中,read使用IFS其环境中的value 分割通过here字符串接收到的字符串。



 类似资料:
  • 基于此,我认为我应该完全开始在中使用

  • 问题内容: 我有一个很长的文件要打印,但是例如跳过前1,000,000行。我查看了cat手册页,但是没有看到任何选择。我正在寻找执行此操作的命令或简单的Bash程序。 问题答案: 你需要尾巴。一些例子: 如果您确实需要跳过特定数量的“第一行”,请使用 即,如果要跳过N行,则开始打印N + 1行。例: 如果只想看最后几行,请省略“ +”号:

  • 问题内容: 文本文件中确实包含int和字符串。我可以从文本文件中打印单词,但不能打印数字。 文本文件包括以下内容: Michael 3000 7000 Bilbo 我喜欢2000号吗? 不,我喜欢9000 问题答案: 您的第一个值(“ Michael”) 不是 整数,因此它永远不会进入循环主体。 也许您想更改代码以使其循环播放,直到到达文件末尾,读取并打印整数,但使用(不打印)非整数值。所以像这样

  • 问题内容: 考虑以下示例: 我不确定Java语言规范中是否有一项规定要加载变量的先前值以便与右侧()进行比较,该变量应按照方括号内的顺序进行计算。 为什么第一个表达式求值,而第二个表达式求值?我本来希望先被评估,然后再与自身()比较并返回。 这个问题与Java表达式中子表达式的求值顺序不同,因为这里绝对不是“子表达式”。需要 加载 它以进行比较,而不是对其进行“评估”。这个问题是特定于Java的,

  • 问题内容: 当我从终端执行该程序时,我编写的程序未打印任何内容,因此我尝试运行以下代码 这是终端,为什么它不打印出来你好。主要功能是否还在运行? 问题答案: Python不会自动调用main()(并且您需要使用sys库来获取argv)。

  • 这个问题与Java表达式中子表达式的求值顺序不同,因为在这里肯定不是“子表达式”。需要加载它进行比较,而不是“求值”。这个问题是特定于Java的,表达式来自一个真实的项目,而不是通常为棘手的面试问题而设计的牵强附会的不切实际的构造。它应该是比较和替换习语的一行替换 它比x86 CMPXCHG指令还要简单,因此在Java中应该使用更短的表达式。