Não sei se é possível fazer um loop while em uma linha.
Mas existem vários erros corrigíveis:
-
while[counter!=0]deve serwhile ($counter != 1)(observe os espaços antes e depois do “!=”). -
set counter = counter-1deve ser@ counter = $counter – 1(observe os espaços antes e depois do "–"). -
P=$P/..deve serset P=$P/..–– ou melhor ainda,set P="$P/.."(no caso de$Pconter espaço (s). - O que me lembra,
set P=$PWDdeve serset P="$PWD",cd $Pdeve sercd "$P"esetenv MPWD=$Pdeve sersetenv MPWD="$P", tudo pelo mesmo motivo. - E, se você conseguir que o loop
whileem uma linha funcione, provavelmente precisará de um;após oend.