' 및 "가 포함된 명령을 사용하여 별칭을 만드는 방법 [중복]

' 및 "가 포함된 명령을 사용하여 별칭을 만드는 방법 [중복]

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

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

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

alias aliasname='command'

어떻게 해야 하나요? 이 명령에는 '및 가 포함되어 있습니다 ". 나는 성공하지 못한 채 다양한 방법을 시도했습니다. 가능합니까? 내가 뭐 놓친 거 없니?

답변1

별칭 구문을 말하는 것은 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) }'
}

답변2

다음을 수행해야 합니다.

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

"및 를 모두 이스케이프해야 합니다 $.

관련 정보