Belirli bir komut satırında geçmiş genişletmeyi devre dışı bırakabilmek space
için, 3. karakter olarak kullanabilirsiniz $histchars
:
histchars='!^ '
Ardından, komutunuza bir satır boşluğu girerseniz, tarih genişletme işlemi gerçekleştirilmez.
bash-4.3$ echo "#!/bin/bash"
bash: !/bin/bash: event not found
bash-4.3$ echo "#!/bin/bash"
#!/bin/bash
Zaman önündeki boşlukların da kullanılabilir olduğu unutulmamalıdır $HISTCONTROL
içeren ignorespace
anlatmak için bir yol olarak bash
tarihte bir komut satırı kaydetmek için değil.
Her iki özelliğin de dahili olarak olmasını istiyorsanız, 3. karakteri olarak başka bir karakter seçmeniz gerekir $histchars
. Komutunun yorumlanma şeklini etkilemeyecek birini istiyorsun. Birkaç seçenek:
- ters eğik çizgi (
\
) kullanma : \echo foo
çalışır ancak takma adı veya anahtar sözcükleri devre dışı bırakmanın yan etkisi vardır.
- SEKME: İlk sıraya yerleştirmek için Ctrl+VTabolsa da basmanız gerekir .
Eğer iki anahtar yazarak sakıncası yoksa, normalde ilk konumda görünür (olmayan herhangi bir karakter seçebilirsiniz %
, @
, ?
, kendiniz oluşturun) ve bunun için boş bir takma ad olun:
histchars='!^%'
alias %=
Ardından bu karakteri, boşluğu ve komutunuzu girin:
bash-4.3$ % echo !!
!!
(Eğer tarih ikamesi olsa devre dışı bırakılmış bir komutu kaydetmek için değil mümkün olmayacaktır. Ayrıca varsayılan 3 karakter unutmayın $histchars
olduğunu #
bunu değiştirirseniz. böylece tarih genişleme yorumlarda yapılmaz ve en yorumları girin istemi, orada! dizilerinin orada genişletilebileceği gerçeğinin farkında olmalısınız).