bash - Bash 中 __FILE__ 和 __LINE__ 的等价物

标签 bash error-handling environment-variables

bash 中是否有包含执行的.sh 文件名称的变量?行号也会很棒。

我想在错误消息中使用它,例如:

echo "ERROR: [$FILE:L$LINE] $somefile not found"

最佳答案

#!/bin/bash

echo $LINENO
echo `basename $0`

$LINENO 为当前行号 $0 当前文件。我使用 basename 来确保您只获取文件名而不是路径。

更新:

#!/bin/bash

MY_NAME=`basename $0`

function ouch {
   echo "Fail @ [${MY_NAME}:${1}]"
   exit 1
}

ouch $LINENO

如果您使用函数方法,则必须将该行作为参数传递,否则您将获得函数定义的行。

关于bash - Bash 中 __FILE__ 和 __LINE__ 的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055755/

相关文章:

bash - 读取包含 IP 的文件并将国家代码写入新的 IP.txt 文件

php - header 的 auto_prepend_file 导致 phpmyadmin 和其他错误

c++ - 为什么 Visual Studio 2010 没有 "unpack"系统变量?

bash 在用 ifs 分割行后打印整行

linux - 在 while 循环中计数

linux - 我有一个用于登录时间的工作脚本,但如果用户未登录,我会收到错误消息

html - : "" 之后的词法错误 <EOF>

android - 我的应用程序的CPU使用率。去高?

shell - 如何像开发者命令提示符一样配置VS Code shell?

vue.js - Nuxt.js env 属性,理解以及如何使用?