Bashで変数が関数に渡されたかどうかを確認する方法は?

Bashで変数が関数に渡されたかどうかを確認する方法は?

私はこれを持っています:

function abash {
    if [[ -v $1 ]]
        then
            atom ~/Shell/$1.sh
        else
            atom ~/.bashrc
    fi
}

Atomを使用してbashスクリプトを編集しやすくするために、私のファイルに入力が存在するかどうかを確認する必要がありますが、有効な入力を提供しても存在しないようです~/.bashrc。編集したい)がabashで開きます。この問題をどのように解決できますか?テストのアイデアはどこで得ましたか?[[ -v $1 ]]$1abash cd~/Shell/cd.sh~/.bashrc[[ -v $1]]これ答え。

ベストアンサー1

なぜ失敗するのかよくわかりませんが、(少なくとも)2つの異なる可能なオプションがあります。[[ -v $1 ]]代わりに、次のいずれかのオプションを使用できます。

パラメータの数が0より大きいことを確認してください。

[[ $# > 0 ]]

最初のパラメータが空でないことを確認してください。

[[ $1 != '' ]]

おすすめ記事