ユーザーに入力したい日付を尋ねたいです。その後、応答を読み、入力した内容に従ってディレクトリに移動します。
ほとんど今日の日付になると思います。できますか?
echo "What date would you like?"
read date
その後、現在の日付をコマンドラインに出力してEnterキーを押すか、バックスペースを使用して先月に変更できます。例えば?
ベストアンサー1
シェルの使用zsh
:
zmodload zsh/datetime
strftime -s date %F $EPOCHSECONDS
set -o emacs
vared -p 'What date would you like? ' date
(
または、次のようにプロンプト拡張を使用しますprint -P
。
print -rPv date '%D{%F}'
set -o emacs
vared -p 'What date would you like? ' date
または(速い拡張のための他の(そして古い)方法):
date=${(%):-%D{%F}}
set -o emacs
vared -p 'What date would you like? ' date
)
vared
ed
iable に組み込まれたコマンドですvar
。
シェルの使用fish
:
fish_default_key_bindings
read -c (date +%F) -P 'What date would you like? ' date
シェルの使用ksh93
:
date=${ printf '%(%F)T' now; }
set -o emacs
IFS= read -rv 'date?What date would you like? '
シェルの使用bash
:
printf -v date '%(%F)T' -1
set -o emacs
IFS= read -rei "$date" -p 'What date would you like? ' date
すべては、ラインエディタに現在の日付を事前設定し、それを編集できるようにします(emacsスタイルのキーバインディングを使用し、スタイルを好む場合はemacs
/default
に置き換えます)。vi
vi
ここ%F
(の略)は、国際形式で日付を提供する標準的な%Y-%m-%d
ガイドラインです。詳しくはマニュアルページをご覧ください。strftime()
YYYY-MM-DD
strftime(3)
複数行変数を編集したい場合とアプローチだけがzsh
正しく機能します。fish