式に変数値を追加する

式に変数値を追加する

Ubuntu Mate 20.04 で将来の日付をエポック番号に変換しようとしています。

そこで、次のコードを書くことにしました。

daysAmount="10"   
endDate=$(date +"%b %_d %Y" -d "+$daysAmount days")   
epochNum=$(date -d "$endDate" +%s)  

最初の 2 行は正常に動作していますが、何も表示されませんepochNum=

私のように内部に別の変数を書き込んでも大丈夫ですか$(date)? そうでない場合、これを機能させるにはどうすればよいですか?

私も試してみましたendDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s)が、それもうまくいきませんでした。

答え1

一時的なロケールでコマンドを実行できます。これで問題は解決するはずです:

daysAmount="10"   
endDate=$(LC_ALL=C date +"%b %_d %Y" -d "+$daysAmount days")   
epochNum=$(LC_ALL=C date -d "$endDate" +%s)  

答え2

なんとかそれを機能させましょう。

エポック番号に変換する前に、日付の言語を確認してください。マウントの名前が米国のアルファベットと異なる場合は、次の「date」コマンドの例のように:

1.11.2021 (пн) 14:47:59 EET

変換は機能しません。

別のマシンでは、「日付」は次のように表示されます (米国アルファベット):

Mon Nov  1 14:47:45 EET 2021

コードは完璧に動作していた


異なる言語のマシンでの動作例については、以下を参照してください。 https://unix.stackexchange.com/a/675661/499362

関連情報