명령으로 별명을 작성하는 방법에는 ‘및’ 별칭으로 바꿀 수 있는지 궁금합니다. 그러나

몇 게시물 전에 누군가 메모리를 백분율로 표시하는 방법을 물었습니다. 누군가가 대답했다.

free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'

~ / .bashrc에서이 명령을 별칭으로 바꿀 수 있는지 궁금합니다. 그러나 alias 구문은 다음과 같습니다.

alias aliasname='command'

어떻게해야합니까? 이 명령에는 '과 가 모두 포함되어 있습니다 ". 다른 방법으로 시도했지만 작동하지 않았습니다. 이것이 가능합니까? 뭔가 빠졌습니까?



답변

당신이 필요합니다 :

alias aliasname="free | awk '/^Mem/ { printf(\"free: %.2f %\n\", \$4/\$2 * 100.0) }'"

당신이 모두를 탈출해야한다는 것을주의 "하고 $.


답변

alias aliasname='command'작은 따옴표가 구문의 일부임을 암시하는 것처럼 별칭의 구문이 약간 오해의 소지가 있습니다. 그들은 아닙니다. 등호 뒤의 부분은 변수 할당과 유사합니다. 셸 단어 는 일반 문자 (따옴표없이) 또는 따옴표로 묶인 문자열 또는 조합으로 구성 될 수 있습니다.

이것들은 모두 유효하며 마지막 세 가지에 해당합니다.

alias ks=ls
alias ls='ls -l'
alias ls="ls -l"
alias ls=ls\ -l

따라서 따옴표를 올바르게 이스케이프하여 별칭 값 안에 포함시키는 것입니다.

예를 들어이 답변 과 이러한 질문에 대한 다른 답변을 참조하십시오 .

또는 별명 대신 함수를 사용하여 인용 문제를 완전히 제거하십시오.

freemem() {
    free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
}