반응형
bash 별칭 명령(단일 따옴표와 이중 따옴표 모두 포함)
다음과 같은 명령이 있습니다.
svn status | awk '$1 =="M"{print $2;}'
어떻게 하면 가명을 만들 수 있을까요?시도해 본 결과:
alias xx="svn status | awk '$1 ==\"M\"{print $2;}'"
당신은 그것을 정확하게 탈출하기만 하면 됩니다.
alias xxx="svn status | awk '\$1 ==\"M\"{print \$2;}'"
여기에 가명을 사용하지 않고 동일한 일을 수행하는 것이 있습니다..bashrc의 함수에 넣습니다.
xx() {
svn status | awk '$1 =="M"{print $2;}'
}
이렇게 하면 견적을 제대로 받을 수 있을지 걱정할 필요가 없습니다.이는 명령줄에서 사용하는 것과 동일한 구문을 사용합니다.
Bash 2.04 이후로 함수를 사용하거나 @ffledleging이 했던 방식을 벗어나는 세 번째 (쉬운) 방법이 있습니다: 문자열 리터럴 구문을 사용하는 것입니다(여기 훌륭한 답변이 있습니다).
예를 들어 이 온라인의 별칭을 만들고자 하는 경우 다음과 같이 됩니다.
alias snap-removedisabled=$'snap list --all | awk \'$5~"disabled"{print $1" --revision "$3}\' | xargs -rn3 snap remove'
그래서 당신은 단지 추가하기만 하면 됩니다.$
문자열 앞에서 단일 따옴표를 이스케이프합니다.
이 경우 를 사용하여 안전하게 비활성화할 수 있는 셸 검사 경고가 표시 경고가 나타납니다.
이중 따옴표와 단순 따옴표를 되돌려서 이중 따옴표가 단일 따옴표 밖에 있도록 할 수 있습니다.
예를 들어, 이것은 작동하지 않습니다.
alias docker-table='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"'
하지만 이것은 효과가 있습니다.
alias docker-table="docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Status}}'"
그리고 해석된 실제 별칭을 확인하면 내부 인용문이 실제로 빠져나가는 것을 볼 수 있습니다.
$ alias docker-table
alias docker-table='docker ps --format '\''table {{.ID}}\t{{.Image}}\t{{.Status}}'\'''
언급URL : https://stackoverflow.com/questions/20111063/bash-alias-command-with-both-single-and-double-quotes
반응형
'bestsource' 카테고리의 다른 글
mongodb에서 업데이트 문서 수를 제한하는 방법 (0) | 2023.05.09 |
---|---|
린트: "가 " 오류로 번역되지 않음을 무시하는 방법? (0) | 2023.05.09 |
Xcode 6 iPhone Simulator 응용 프로그램 지원 위치 (0) | 2023.05.04 |
이름이 "x"인 경로가 이미 경로 컬렉션에 있습니다.경로 이름은 고유해야 합니다.ASP에서는 예외입니다.NET MVC 3 (0) | 2023.05.04 |
셸 스크립트의 변수에 명령을 저장하려면 어떻게 해야 합니까? (0) | 2023.05.04 |