web-dev-qa-db-ja.com

シェルのエイリアスで変数を使用できません

これはサンプルの簡単なプログラムです。私はC-Shellを使用していますが、この環境自体のソリューションが必要です。このコードサンプルを次に示します。

set FILENAME = "\!:2"

alias jo 'echo this is my \!:1 file and its name is $FILENAME'

私が以下を与えるとき、コマンドラインで:

jo first sample.txt

出力を取得する必要があります

this is my first file and its name is sample.txt

代わりに私は得る

this is my first file and its name is !:2

ここでの問題は、シンボル\が完全に削除されることであり、その方法はわかりません。引数を取りたい場合に必要です。誰でもこれを手伝うことができますか?

2
Jovin Miranda

目的の結果を得るには、エイリアスの2番目の引数を二重引用符で囲む必要があります。そのため、変数filenameは正しく解釈されます。

set FILENAME = "\!:2"
alias jo "echo this is my \!:1 file and its name is $FILENAME"

テストケース:

% jo first sample.txt
this is my first file and its name is sample.txt
1
Helio