gpt4 book ai didi

Bash bug re $LINENO-- 或者我只是感到困惑?

转载 作者:行者123 更新时间:2023-11-29 08:57:30 27 4
gpt4 key购买 nike

考虑:

#!/bin/bashecho '' $LINENOecho '' ''  $LINENO

第一个 echo 正确打印了 4,但第二个 echo 打印了 5 而不是 6。我是不是遗漏了什么,或者这是一个错误? (使用 bash 3.00.15)

最佳答案

它看起来像是 bash 中的一个实现错误(错误)。

我用过:

#!/bin/bash -p
echo $LINENO
echo ' ' $LINENO '
' $LINENO '
' $LINENO
echo '' '
' $LINENO

产生了:

2
3
3
3

6

这支持在 shell 认为该行已完成之前对变量求值的理论。该行完成后,它会更新 LINENO 并继续。

测试的 Bash 版本:3.2.48 (mac), 4.1.5 (linux)

当我使用语法时:

echo '
' $LINENO

它获取较新的行号。这似乎与作为唯一参数携带的空字符串的评估有关。

关于Bash bug re $LINENO-- 或者我只是感到困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com