bash, 별칭 또는 함수의 "\"

bash, 별칭 또는 함수의 "\"

저는 Windows와 Linux를 많이 사용하고 가끔 cd\Windows 머슬 메모리에서 입력하는 경우가 있기 때문에 별칭을 추가해 보았지만 alias cd\='cd /'작동하지 않았습니다(아마도 \Linux에서는 이스케이프 문자이기 때문일 것입니다). 별칭이나 함수를 사용하여 cd\=>를 입력하는 방법이 있나요 cd /?

답변1

백슬래시는 다음 문자를 이스케이프하는 데 사용되며 줄 끝에서 연속 줄을 시작하기 때문에 어렵습니다. 따라서 이라는 함수를 만들 수 있더라도 이를 또는 cd\로 실행해야 합니다 . 별칭의 경우 이름 일부를 이스케이프하거나 인용하면 별칭 확장이 방지됩니다.cd\\'cd\'

어쨌든 Bash에서는 이러한 별칭이나 함수를 만들 수 없습니다.

$ alias cd\\='echo foo'
bash: alias: `cd\': invalid alias name
$ cd\\ () { echo foo; }
bash: `cd\\': not a valid identifier

하지만 Zsh에서는 사용할 수 있지만 이중 백슬래시가 필요합니다...

% cd\\ () { echo foo; }
% cd\\ 
foo

실제로 별칭을 허용하는 것처럼 보이지만 사용할 수는 없습니다.

% alias foo\\='echo bar' 
% foo\\
zsh: command not found: foo\
% 'foo\'
zsh: command not found: foo\

Bash는 이름에 백슬래시가 포함된 외부 명령을 실행할 수 있지만 cd.

관련 정보