답변:
파일에 다음과 같은 작은 기능을 추가하여이를 달성 할 수 있습니다 ( ??
매우 간단 하다고 부르지 만 원하는대로 변경할 수 있습니다) .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
.