入力パラメータを取得して最新の日付に渡す

入力パラメータを取得して最新の日付に渡す

だから私は次のような入力を得るためにシェルスクリプトを書いてみました。

bash whichday Jan 10 2017

その入力を取得して発生した日付を印刷する必要があります。以下は私が使用したいスクリプトです。

#!/bin/bash
if [ $# -ne 3 ]
    then
    echo "Please enter the month day year (example: Jan 5 2002)"

else
    str=\"$1" "$2" "$3\"
    echo $str
    date -d $str +%A
fi 

しかし、これを実行するたびに、次のような結果が表示されます。

"Jan 10 2017"
date: extra operand ‘2017"’
Try 'date --help' for more information.

私がするとき

date -d "Jan 10 2017" +"%A"

コマンドラインは正しい日付(火曜日)を出力しますが、まったく同じコマンドを実行するようになっているスクリプトは機能しません。助けてください。なぜこれが起こるのか理解できません。

ベストアンサー1

ただ設定

str="$1 $2 $3"

それから

date -d "$str" +'%A'

二重引用符をエスケープすると、value の一部になり、$str解析dateできません。

str以下を使用して変数を完全に無視することもできます$*

echo "$*"
date -d "$*" +'%A'

おすすめ記事