次のコード例を見てください。
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"