2012-04-17 9 views
1

BASHでの絶対パスを取得するための典型的な方法は次のとおりです。

`cd $THE_PATH; pwd` 

しかし、これはtcshを/ cshの上では動作しません。 tcshのであれば、あなた

set kk=`cd $HOME; pwd` 

株式会社は、絶対パスの正しい値を保持します、しかし、非常に奇妙な、「LS $ KK」あなたにエラーを与え、それはパスが〜存在しないと言います!

これはどうして起こったのですか?ありがとう。

[EDIT]

set kk=`cd $HOME; pwd` 
cd $kk 

はこれを与える:

"^[]2;[email protected]:/u/myid^G: No such file or directory." 

しかしますecho $ KKが細かいです〜

"/u/myid" 
+5

「echo $ kk」の出力は何ですか?どのような値を期待しましたか? – sarnold

+0

それは私のために、私はちょうど試したカップルの場合少なくとも見つける。 '$ THE_PATH'の値は何ですか?あなたはどのディレクトリから始めていますか?' $ kk'の値はあなたが設定した後何ですか?パス内のスペースやその他の特殊文字は、あなたが見ている問題を説明することができます。 –

+0

これをやってみましょう: 'echo" $ kk "> temp.txt'そして' temp.txt'には何が入っているのかを見てください。エコーアウトしない文字(Ctrl-Gなど)をピックアップしていても、文字列の一部であるのだろうかと思います。私はあなたの例を試しましたが、私のシステム上のtcshで動作します。 –

答えて

1

問題は、あなたがcwdcmdエイリアスを定義していることです。 tcshman pageあなたが定義したechoコマンドも実行され、出力は$kk変数に保存されているcdを実行cwdcmd

すなわち:。

unalias cwdcmd 

しかし、それは必要な機能が(おそらくxtermタイトルを設定)、次にもう動作しない副作用を持っていることに注意してください:

あなたが cwdcmdエイリアスを削除することができ、これを避けるために。

関連する問題