cshで次のbash関数を使用できるようにcshエイリアスを作成しています。
function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
P=$P/..
done
cd $P
export MPWD=$P
}
(私は上記のbash機能を盗んだ。ここ)
私はこれを書いた:
alias up 'set LIMIT=$1; set P=$PWD; set counter = LIMIT; while[counter!=0] set counter = counter-1; P=$P/.. ; end cd $P; setenv MPWD=$P'
ただし、次のエラーが発生します。
while[counter!=0]: No match.
P=/net/devstorage/home/rghosh/..: Command not found.
end: Too many arguments.
私のスクリプトは期待どおりに動作しません。私はcshを読んでいますここ。
ベストアンサー1
while
1行でループを実行できるかどうかはわかりません。しかし、いくつかの修正可能なバグがあります。
while[counter!=0]
そうする必要がありますwhile ($counter != 1)
( " "前後のスペースに注意してください!=
)。set counter = counter-1
そうする必要があります@ counter = $counter – 1
( " "前後のスペースに注意してください–
)。P=$P/..
set P=$P/..
–– 以上でなければなりませんset P="$P/.."
($P
スペースが含まれている場合)。- それは同じ理由で
set P=$PWD
なければならずset P="$PWD"
、すべきcd $P
でなければならcd "$P"
ないsetenv MPWD=$P
ことを思い出させます。setenv MPWD="$P"
while
そして、ループが1行ですべて機能するようにするには、;
おそらくend
。