0

Unixシェルスクリプトは初めてです。引数を指定してサンプル関数を実行しようとしていますが、シェルは最初の引数を最初の引数として認識せず、2 番目の引数として認識します。

#!/bin/bash
func(){
    echo "func"
    if [ -z $1 ]
    then echo "$1 received"
    else echo "not received"
    fi
    }
func "hello"

出力関数を受け取りませんでした

与えるべきだった場所

func
hello received
4

2 に答える 2

6

テストは次のようになります。

if [ -n "$1" ]

それ以外のif [ -z $1 ]

  • -n: 変数は空ではありません
  • -z: 変数が空です

$1 の前後に引用符を追加することをお勧めしますそうしないと、引数を渡さないと機能しません。

于 2015-01-06T13:16:37.673 に答える