큰따옴표와 작은따옴표가 모두 실패할 경우 별칭 설정

큰따옴표와 작은따옴표가 모두 실패할 경우 별칭 설정

이 질문은 중복되지 않습니다.별칭이 bash 명령을 직접 실행하는 것과 다르게 동작하는 이유는 무엇입니까?왜냐하면 나는 이미 성공하지 못한 채 그 해결책을 시도했기 때문입니다. 모든 작은따옴표를 큰따옴표로 바꾸었고 그 반대도 마찬가지였습니다. 이 명령은 둘 다 수행하지 않습니다.

sys시스템 변경 사항을 추적하고, sys.md날짜를 추가하고, 줄을 가져와서 붙여넣고, -마크다운 h2 형식으로 바꾸고, 새 줄을 열고, 하나를 -마크다운으로 삽입하는 파일을 여는 별칭을 구현하려고 합니다. 총알 형식. vi.stackexchange.com에서 이 명령을 구현하는 데 도움을 받았습니다. 효과가있다:

nvim +'$pu_|r!date' +'norm yypVr-o ' ~/notes/sys.md

작은따옴표를 큰따옴표로 바꾸면 $pu_가 평가되어 다음과 같은 결과를 얻습니다.

zsh: event not found: date

그래서 작은 따옴표가 중요합니다. 그러나 별칭을 구현할 때

alias sys="nvim +'$pu_|r!date' +'norm yypVr-o- ' ~/notes/sys.md"

별칭이 실패했습니다. nvim열리지만 날짜가 맨 아래가 아닌 두 번째 행에 추가됩니다. 분명히 $pu_는 BASH에서 변수로 평가되고 있습니다. ( nvim구문 검사기는 그것이 평가되고 있음을 보여줍니다.) 이중 및 단일을 반전하여 생성

alias sys='nvim +"$pu_|r!date" +"norm yypVr-o- " ~/notes/sys.md'

같은 행동을 합니다. 백틱,

alias sys=`nvim +"$pu_|r!date" +"norm yypVr-o- " ~/notes/sys.md`

bash를 고정하세요 source .zshrc. 어떻게 진행해야 할지 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

bash 함수에 넣기만 하면 됩니다(에 함수를 추가할 수 있음 .bashrc).

sys() {
    nvim +'$pu_|r!date' +'norm yypVr-o ' ~/notes/sys.md
}

그런 다음 별칭처럼 호출할 수 있습니다.

답변2

유일한 문제가 single quote작은따옴표 문자열에 문자를 포함하는 방법을 이해하는 것이라면 방법은 다음과 같습니다. 사용:

'\''

작은따옴표로 묶인 문자열 내의 문자 에 사용됩니다 single quote.

이는 현재 인용 문자열을 종료하고 인용 문자열을 삽입한 다음 새 인용 문자열을 시작합니다.

참고: 이는 일반적인 문제이므로 bosh이 변환을 자동화하는 방법이 제공됩니다. 이를 가져와 schilytools컴파일한 후 다음 bosh을 호출하면 사용할 수 있습니다.

set -o hashcmds
#b aliasname aliasreplacement

나중에 호출하면 패턴에 값이 aliasreplacement입력됩니다 .raw

alias aliasname

다음을 입력하면 별칭이 올바르게 인용된 형식으로 나타나는 것을 볼 수 있습니다.

alias -R aliasname

raw스키마에 별칭이 표시됩니다.

관련 정보