Neden bash boşluklarla başlayan komutları saklamıyor?


48

Eğer böyle bir komut dizisi uygularsam:

$ ls
$ grep abc file.txt

ve bir öncekini almak için yukarı ok tuşunu kullanın, terminal son cmd'yi ( grepburada olan) gösterecektir.

Ama böyle bir şey yaparsam:

$ ls
$   grep abc file.txt

nerede grepboşluk öncesinde, yukarı basarak verir ls, değil grep.

Bu neden?


Yanıtlar:


52
echo $HISTCONTROL
ignoreboth

erkek bash:

HISTCONTROL

Komutların geçmiş listesine komutların nasıl kaydedildiğini kontrol eden, iki noktalardan ayrılmış bir değerler listesi. Değerlerin listesi içeriyorsa ignorespace, boşluk karakteriyle başlayan satırlar geçmiş listesine kaydedilmez. Bir ignoredupsönceki geçmiş girişiyle eşleşen satırların değeri kaydedilmemesine neden olur. Değeri ignorebothiçin kısaltmadır ignorespaceve ignoredups.


3
ve en azının sağladığı varsayılan değere HISTCONTROLayarlanmıştır . ignoreboth~/.bashrcdebian
Stéphane Chazelas

1
Kullanım durumu nedir ignorespace?
Ciro Santilli 事件 改造 中心 14 六四 事件

1
Ubuntu 14.04’te varsayılan değer, ignorebothrahatsız edici bir durumdur.
Nick Gammon

6
Ciro, sanırım öyleyse emri girip emri girmemeniz için böyle bir komut girmelisin echo "drop database mydb" | mysql -u root -pPassword.
Jeremy,

2
Mac kullanıcıları için, HISTCONTROL hiçbir şeye ayarlanmadı, bu yüzden bash_profile veya benzeri bir dosyaya eklemeniz gerekecek - unix.stackexchange.com/questions/115917/…
chrismarx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.