답변:
파일에 다음과 같은 작은 기능을 추가하여이를 달성 할 수 있습니다 ( ??매우 간단 하다고 부르지 만 원하는대로 변경할 수 있습니다) .bashrc.
?? () { "${@,,}"; }
다음으로 실행할 때 :
?? !!
마지막 명령은 모든 문자를 소문자로 실행합니다.
!!: 이것은 bash의 히스토리 도구의 일부이며, 특히 마지막 명령 실행으로 확장됩니다 . 예를 들어, echo !!이 특정 쉘 세션에서 실행 된 마지막 명령을 인쇄합니다."${@,,}: 구문 ${foo,,} 은 변수 의 내용$foo 을 모두 소문자로 변환합니다. $@위치 매개 변수의 배열입니다. 함수 내에서 사용되면 해당 함수에 전달 된 매개 변수로 확장됩니다.따라서 "${@,,}"함수에 전달 된 모든 것을 소문자로 변환 한 다음 실행합니다. 따라서 매개 변수로 ??함수를 실행하면 !!마지막 명령이 소문자로 변환되어 실행됩니다.
"!!".
??lowercaes하고 해당 인수의 문자로 변환 !!다시 쓰기 현재 명령에서보기 자동 이전 명령 (그래서 ??으로한다 이전 명령을 인수).
여기에 프로그래머가 대답합니다 .... 파이썬을 사용하십시오 :
`echo "print '!!'.lower()" | python`
또는 루비 :
`echo "print '!!'.downcase" | ruby`
또는 Perl (아마 내가 가장 좋아하는 것) :
`perl -e "print lc('!!');"`
또는 PHP :
`php -r "print strtolower('!!');"`
또는 Awk :
`echo "!!" | awk '{ print tolower($1) }'`
또는 Sed :
`echo "!!" | sed 's/./\L&/g'`
또는 배쉬 :
str="!!" ; ${str,,}
또는 zsh
echo "A='!!' ; \$A:l" | zsh
또는 NodeJS가 있다면 :
`echo "console.log('!!'.toLowerCase());" | node`
당신은 또한 사용할 수 있습니다 dd(그러나 나는하지 않을 것입니다!) :
`echo "!!" | dd conv=lcase 2> /dev/null`
작업을 수행하는 작은 스크립트를 만들 수도 있습니다.
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
다음과 같이 사용하십시오.
`echo !! | lower`
와 하나 sed,
$(echo !! | sed 's/^\(.*\)$/\L\1/g')
예:
$ SUDO APT-GET UPDATE
SUDO: command not found
$ $(echo !! | sed 's/^\(.*\)$/\L\1/g')
산출:
$(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.