パラメータまたはパイプの入力を可能にするBash関数

パラメータまたはパイプの入力を可能にするBash関数

パラメータやパイプから入力を受け取ることができるように、次のbash関数を作成したいと思います。

b64decode() {
    echo "$1" | base64 --decode; echo
}

必須使用:

$ b64decode "QWxhZGRpbjpvcGVuIHNlc2FtZQo="
$ b64decode < file.txt
$ b64decode <<< "QWxhZGRpbjpvcGVuIHNlc2FtZQo="
$ echo "QWxhZGRpbjpvcGVuIHNlc2FtZQo=" | b64decode

ベストアンサー1

バラよりStefan Chazerasの答えより良い解決策を得るために。


/dev/stdin以下を使用して標準入力から読み取ることができます。

b64decode()
{
    if (( $# == 0 )) ; then
        base64 --decode < /dev/stdin
        echo
    else
        base64 --decode <<< "$1"
        echo
    fi
}
  • $# == 0コマンドライン引数が0であることを確認してください。
  • base64 --decode <<< "$1"使用やパイプのherestring代わりに使用することも可能です。echobase64

おすすめ記事