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

おすすめ記事