0

こんにちは私はbashスクリプトを初めて使用しますが、パラメーター20120920 5を使用してこの関数呼び出しの結果をローカル変数に割り当てようとすると、コマンドが見つからないというエラーが発生する理由を理解できません。

    #!/bin/bash

function nDaysAgo () #date # daysago
{
 date -d "${1} - ${2} days" +%Y%m%d;
}

したがって、スクリプト名はndaysagoであり、最初に。を使用してスクリプトを呼び出します。ndaysagoそして次のように値を割り当てます:

newdate= nDaysAgo 20120910 5

印刷:20120905:コマンドが見つかりません

日付の実行が行われたが、出力をコマンドとして使用しようとすることを意味します。これは私が期待することではありません。

私はまた、次のように関数内の変数に新しい値を割り当てようとしました:

#!/bin/bash

function nDaysAgo () #date # daysago
{
 var=$(date -d "${1} - ${2} days" +%Y%m%d)
}

でもまだ何もない、mmmmmm

4

1 に答える 1

4

=変数を割り当てるときは、前後にスペースを入れることはできません。関数を呼び出すに は、コマンド置換$(...)と呼ばれる構文を使用する必要があります。

への変更:

newdate=$(nDaysAgo 20120910 5)
于 2012-09-27T08:05:27.867 に答える