ある変数の式の結果と別の変数の先頭に変数を追加したいと思います。

ある変数の式の結果と別の変数の先頭に変数を追加したいと思います。

問題のファイル名OD_Orders_2019-02-19.csv

ファイル名の残りの部分は、ファイル名に昨日の日付を含むファイルを読み取るbashスクリプトを作成しようとしています。$y式の出力がファイル名とその間の正確な日付と同じであることを望みます。これが私が今まで持っているものです:

昨日の日付を正しい形式で取得するためにxを作成しました。

x="date -d yesterday +%Y-%m-%d"

y="OD_Orders_$x.csv"

問題は、エコーを実行すると結果が$y次のようになることです。 OD_Orders_date -d yesterday +%Y-%m-%d.csv

$xecho $y式を表示せずに時の値を正しく表示する必要があります。$yこのスクリプトでは後で使用したいので、昨日の正しい形式の日付を含むファイル名が必要です。

ベストアンサー1

使用する必要がありますコマンドの置き換え $( ... )コマンド自体ではなくコマンドの出力を置き換えます。

x="$(date -d yesterday +%Y-%m-%d)"
y="OD_Orders_${x}.csv"

もちろん、次のように単純化できます。

y="OD_Orders_$(date -d yesterday +%Y-%m-%d).csv"

おすすめ記事