bash - `__FILE__` के बराबर,`__LINE__` में बाश




macros equivalent (3)

क्या bash में कोई भी चर है जिसमें .sh फ़ाइल निष्पादित किया गया है?
लाइन नंबर भी बहुत अच्छा होगा

मैं इसे त्रुटि संदेशों में उपयोग करना चाहता हूं जैसे कि:
गूंज "त्रुटि: [$ FILE: L $ LINE] $ कुछ फ़ाइल नहीं मिली"


$ 0 वेरिएबल आपको क्रियान्वित शैल स्क्रिप्ट का नाम bash में देगा।


आपको बस की आवश्यकता है

echo $LINENO
echo $(basename $0)

मुझे "BASH_SOURCE" और "BASH_LINENO" बिल्ट-इन ऑरेंज बहुत उपयोगी लगता है:

$ cat xx
#!/bin/bash

_ERR_HDR_FMT="%.23s %s[%s]: "
_ERR_MSG_FMT="${_ERR_HDR_FMT}%s\n"

error_msg() {
  printf "$_ERR_MSG_FMT" $(date +%F.%T.%N) ${BASH_SOURCE[1]##*/} ${BASH_LINENO[0]} "${@}"
}

error_msg "here"


error_msg "and here"

Xx पैदावार को शामिल करना

2010-06-16.15:33:13.069 xx[11]: here
2010-06-16.15:33:13.073 xx[14]: and here




equivalent