Bash:ユーザー入力を正しく受け入れる方法は?

Bash:ユーザー入力を正しく受け入れる方法は?

オンラインで例を見つけることはできませんが、ユーザー入力を受け入れるために使用されるシェルエンコーダを見ていることは確かです${1:--}。例は次のとおりです。

#!/bin/bash

var="${1:--}"
echo "$var"

それから実行してください。

$ ./test.sh "this is a test"

私の質問は:"${1:--}"ユーザー入力を使用することと受け入れることの違いは何ですか"$1"

ベストアンサー1

${1:--}パラメータ1がない場合、またはパラメータが空の場合、文字列 "-"に展開されます。

したがって、./test.sh ""コマンドと同様に "-" 文字列が返されます。ほとんどの場合、「-」パラメータは./test.sh有用なデフォルト値と見なされる「または」を意味できます。また、パラメータが明示的に設定されていないとスクリプトが中断されないようにします。stdinstdout

おすすめ記事