err()
fileに関数がありますabc
。.sh
ファイルには拡張子がありませんが、#!/bin/bash
.
err () {
echo "${1}" >&2
}
今、私はそれを別のファイルにインポートしていますxyz
:
source abc
someFunction(){
err "Failed to back up"
}
これは正しい輸入方法ですか?
はい、上記のように、または次のようにすることができます。. FILENAME
ファイルは次で終わる必要はありません.sh
それはいいです、ここにいくつかのヒントがあります:
f_
関数の命名規則を使用します。たとえば、関数名の前に を付けf_err
ます。関数呼び出しは他のコマンドと同じように見えます。これは読者へのヒントです。また、名前の衝突の可能性を減らします。
読み取りアクセスのみが必要であり、#!/bin/bash
(単なるコメント) は必要ありません。
Bash では、関数を解析する前にいくつかのオプションを設定する必要があります。たとえば、shopt -s extglob
拡張グロビングを使用する場合は、関数の前と外で行う必要があります。それを関数内に入れるのは遅すぎます。
Bash は、FPATH 環境変数または自動ロードをサポートしていません (Korn シェルのように)。
新しく作成した関数をエクスポートする必要があります
abc
これを追加する最後に:
export -f err