Ekle " nasıl Bash, emin [E/H]"ve herhangi bir komut veya bir diğer ad?
Bu durumda, Bash Onayla bir ekleme yapmak istiyorum
Are you sure? [Y/n]
Mercurial aslında bir takma ad olan hg push ssh://username@www.example.com//somepath/morepath
,. Takma onu elde etmek için eklenebilir Standart bir komut var mı?
Nedeni hg push
hg out
benzer ses ve istediğim zaman bazen hgoutrepo
, Ben accidentlly tipi hgpushrepo
(her ikisi de takma ad).
Güncelleme:Eğer olabilir bir şey gibi yerleşik bir komut ile başka bir komut gibi: confirm & hg push ssh://...
harika... sadece bir komut olabilir sormak için bir yes
no
ve devam ile geri kalanı ise yes
.
CEVAP
Bu Hamish's answer daha kompakt ve çok yönlü formları vardır. Büyük ve küçük harflerin herhangi bir karışımdır kolu:
read -r -p "Are you sure? [y/N] " response
case $response in
[yY][eE][sS]|[yY])
do_something
;;
*)
do_something_else
;;
esac
Ya da, Bash ^ için . = 3.2 sürümü:
read -r -p "Are you sure? [y/N] " response
if [[ $response =~ ^([yY][eE][sS]|[yY])$ ]]
then
do_something
else
do_something_else
fi
Ya Da, Bash 4.x:
read -r -p "Are you sure? [y/N] " response
response=${response,,} # tolower
if [[ $response =~ ^(yes|y)$ ]]
...
Düzenleme:
Sizin yanıt olarak düzenlemek, burada ve benim cevabım (benzer şekilde diğer iki ile çalışmak istiyorsunuz) ilk sürümüne göre confirm
bir komut oluşturmak kullanmak istiyorum:
confirm () {
# call with a prompt string or use a default
read -r -p "${1:-Are you sure? [y/N]} " response
case $response in
[yY][eE][sS]|[yY])
true
;;
*)
false
;;
esac
}
Bu fonksiyonu kullanmak için:
confirm && hg push ssh://..
ya
confirm "Would you really like to do a push?" && hg push ssh://..
Nasıl herhangi bir komut dosyası düzen...
Bash: eğer herhangi bir komut başarısı...
Var "Değiştir Veya Ekle" için...
Nasıl " devre dışı bırakmak;GİRİN ...
Nasıl Ekle "veya" switch ifa...