質問: 手癖や似たコマンドと間違えることなどが原因でついつい実行してしまうコマンドに対して、誤実行を防ぐために実行の確認を挟んでミスを防ぎたいのですが、その実装方法が分からないので教えていただきたいです。 環境 * macOS Catalina * zsh やりたいこと ------ 誤実行を防止したいコマンドを `hoge` とします。 ``` % hoge Are you sure you want to do 'hoge' ? (yes/no) ``` `yes` で実行、 `no` と入力したら終了。
回答: こんな感じでしょうか。これを`~/.zshrc`に書いておく。 ``` date(){ local ANS read "ANS?Are you ~~~ (yes/no)" if [[ "${ANS}" = y* ]] then command date "$@" fi } ``` 正確に`yes`と入れる必要があるとか、`yes`か`no`でないとループして再入力させるとかがいいと思うのであればそのように修整してください。 もし、Enter不要で1文字の`y`を押したらすぐに動作して欲しいなら、 ``` date(){ if read -q "?Are you ~~~ (yes/no)" then echo ; command date "$@" else echo fi } ```