bash_profileの関数をbashスクリプトとして呼び出す方法

bash_profileの関数をbashスクリプトとして呼び出す方法

機能があります。.bash_profile

certspotter(){
curl -s https://certspotter.com/api/v0/certs\?domain\=$1 | jq '.[].dns_names[]' | sed 's/\"//g' | sed 's/\*\.//g' | sort -u | grep $1
}

Bashスクリプトから関数を呼び出そうとしています。test.sh

ところで、以下のようなエラーが発生します。

test.sh: 4: test.sh: certspotter: not found

そのスクリプトからそれを呼び出す方法

答え1

関数が定義されている場所(.bash_profile)をエクスポートする必要があります。

export -f certspotter

答え2

これには2つの問題があるようです。まず、関数を定義するには、function少なくとも私のシステムではキーワードが必要なので、関数定義は次のようになります。

function certspotter(){
    curl -s https://certspotter.com/api/v0/certs\?domain\=$1 | jq '.[].dns_names[]' | sed 's/\"//g' | sed 's/\*\.//g' | sort -u | grep $1
}

その後、コメントで述べたように関数を呼び出すスクリプトは、関数を含むファイルをインポートする必要があります。これまでに設定したので、次のようになります。

. .bash_profile

ただし、関数を取得するために.bash_profileを呼び出すかどうかを検討することもできます。代わりに、関数ライブラリ用に別々のスクリプトファイルを生成できます。

関連情報