Birçok kez tüm harfleri büyük harfle (belki de CapsLockaçıktı) bir komut çalıştırdım ve bunu Enterfark etmeden önce bastırdım .
Son komutu tüm harfleri küçük harfe dönüştürerek nasıl çalıştırabilirim?
Birçok kez tüm harfleri büyük harfle (belki de CapsLockaçıktı) bir komut çalıştırdım ve bunu Enterfark etmeden önce bastırdım .
Son komutu tüm harfleri küçük harfe dönüştürerek nasıl çalıştırabilirim?
Yanıtlar:
Dosyanıza aşağıdaki küçük işlevi ekleyerek ( ??çok basit olarak adlandırıyorum, ancak bunu istediğiniz gibi değiştirebilirsiniz) yapabilirsiniz .bashrc:
?? () { "${@,,}"; }
Sonra, ne zaman çalışacaksınız:
?? !!
son komut küçük harflerle tüm harflerle çalıştırılır.
!!: Bu, bash'ın geçmiş araçlarının bir parçasıdır, özellikle de son komut çalıştırmasına kadar genişler . Örneğin, echo !!bu özel kabuk oturumunda çalıştırılan son komutu yazdıracaktır."${@,,}: Yapı ${foo,,} ,$foo tüm küçük harflere dönüştürülen değişkenin içeriğini dönüştürür. $@konumsal parametreler dizisidir. Bir fonksiyonun içinde kullanıldığında, o fonksiyona iletilen parametrelere genişletilir.Böylece, "${@,,}"işleve iletilen her şeyi küçük harfe dönüştürecek ve sonra çalıştıracaktır. Bu nedenle, ??işlevi !!parametre olarak çalıştırmak, son komutu küçük harfe dönüştürür ve çalıştırır.
"!!".
??lowercaes ve onun argümanları harfleri dönüştüren !!yeniden yazmış akım komutu otomatik olarak önceki komutu (böylece ??olarak alır önceki komutu değiştirir).
`yankı !! | tr '[: üst:]' '[: alt:]' '
Anahtar, `çıktıyı komut olarak çalıştıran (backticks) alıntılarda bulunur.
trbenim de ilk tercihim olurdu. Ayrıca çalışır (backticks alternatifi ve POSIX braket sınıfları olmadan):$( echo !! | tr '[A-Z]' '[a-z]')
İşte bir programcı cevap geliyor .... python kullanın:
`echo "print '!!'.lower()" | python`
Veya Ruby:
`echo "print '!!'.downcase" | ruby`
Veya Perl (muhtemelen benim favorim):
`perl -e "print lc('!!');"`
Veya PHP:
`php -r "print strtolower('!!');"`
Veya Awk:
`echo "!!" | awk '{ print tolower($1) }'`
Veya Sed:
`echo "!!" | sed 's/./\L&/g'`
Veya Bash:
str="!!" ; ${str,,}
Veya zsh
echo "A='!!' ; \$A:l" | zsh
Veya varsa NodeJS:
`echo "console.log('!!'.toLowerCase());" | node`
Ayrıca kullanabilirsiniz dd(ama ben olmaz!):
`echo "!!" | dd conv=lcase 2> /dev/null`
İşi yapmak için küçük bir komut dosyası da oluşturabilirsiniz:
sudo bash -c 'cat << EOF > /usr/local/bin/lower
#!/usr/bin/python
import fileinput
print "".join(fileinput.input()).lower(),
EOF' && sudo chmod +x /usr/local/bin/lower
Hangi şekilde kullanırsınız:
`echo !! | lower`
Ve olan sed,
$(echo !! | sed 's/^\(.*\)$/\L\1/g')
Misal:
$ SUDO APT-GET UPDATE
SUDO: command not found
$ $(echo !! | sed 's/^\(.*\)$/\L\1/g')
Çıktı:
$(echo SUDO APT-GET UPDATE | sed 's/^\(.*\)$/\L\1/g')
[sudo] password for avinash:
0% [Waiting for headers] [Waiting for headers] [Waiting for headers] [Connectin^
!!:l.