この「-n」とはどういう意味ですか? [しゃっくり]

この「-n」とはどういう意味ですか? [しゃっくり]

次のコード例を見てください。

MIN=10

if [ -n "$1" ]; then echo "$1"; fi
if [ -n "$2" ]; then echo "$2"; fi 
if [ -n "$3" ]; then echo "$3"; fi
if [ -n "$4" ]; then echo "$4"; fi
if [ -n "$5" ]; then echo "$5"; fi
if [ -n "$6" ]; then echo "$6"; fi
if [ -n "$7" ]; then echo "$7"; fi
if [ -n "$8" ]; then echo "$8"; fi
if [ -n "$9" ]; then echo "$9"; fi
if [ -n "${10}" ]; then echo "${10}"; fi

echo "List of arguments: "$*"" 
echo "Name of this script: "$0""
if [ $# -lt "$MIN" ]; then echo "Not enough arguments, need $MIN to run."; fi

たとえば、端末出力は次$./new.sh q w e r t y u i o pのようになります。

q
w
e
r
t
y
u
i
o
p
List of arguments: q w e r t y u i o p
Name of this script: ./new.sh

出力は$./new.sh q w e r t y u i o次のとおりです。

q
w
e
r
t
y
u
i
o
List of arguments: q w e r t y u i o
Name of this script: ./new.sh
Not enough arguments, need 10 to run.

質問:どういう-n意味ですか?

ベストアンサー1

[組み込み関数の別の名前ですtestここそしてここ、返品これ

この一連のステートメントはifループでうまく機能します。 Bashでは間接拡張を使用できます。

for ((i=1 ; i <= 10 ; i++)) ; do 
    if [ -n "${!i}" ] ; then 
        echo "${!i}"
    fi
done

より一般的なイディオムはshiftすべての反復で使用するものですが、そうすると引数リストが破損します。

また、$0ここに引用の外に引用があります。ほとんどの場合、明示的に望まない限り、すべての変数拡張子を引用符で囲む方が便利です。噴射とファイル名拡張子。

echo "Name of this script: "$0""

したがって、次のように書く代わりに:

echo "Name of this script: $0"

おすすめ記事