考虑:
#!/bin/bash echo ' ' $LINENO echo '' ' ' $LINENO
第一个回声正确打印4,但第二个回显打印5而不是6.我错过了什么,或者这是一个错误?(使用bash 3.00.15)
它看起来像bash中的一个实现不当(错误)。
我用了:
#!/bin/bash -p
echo $LINENO
echo ' ' $LINENO '
' $LINENO '
' $LINENO
echo '' '
' $LINENO
Run Code Online (Sandbox Code Playgroud)
产生了:
2
3
3
3
6
Run Code Online (Sandbox Code Playgroud)
它支持在外壳认为线已完成之前先评估变量的理论。该行完成后,将更新LINENO并继续。
测试的Bash版本:3.2.48(mac),4.1.5(linux)
当我使用语法时:
echo '
' $LINENO
Run Code Online (Sandbox Code Playgroud)
它获取较新的行号。它似乎与对作为唯一参数的空字符串的评估有关。
归档时间: |
|
查看次数: |
897 次 |
最近记录: |