É improvável que o comando which
seja quebrado no Solaris 10. É apenas um script csh
1 .
Se o conteúdo desse script estiver realmente corrompido, você poderá substituí-lo copiando as linhas a seguir nele. Isso restaurará seu comportamento padrão.
#! /usr/bin/csh -f
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# Copyright (c) 1980 Regents of the University of California.
# All rights reserved. The Berkeley Software License Agreement
# specifies the terms and conditions for redistribution.
#
#ident "%Z%%M% %I% %E% SMI"
#
# which : tells you which program you get
#
# Set prompt so .cshrc will think we're interactive and set aliases.
# Save and restore path to prevent .cshrc from messing it up.
set _which_saved_path_ = ( $path )
set prompt = ""
if ( -r ~/.cshrc && -f ~/.cshrc ) source ~/.cshrc
set path = ( $_which_saved_path_ )
unset prompt _which_saved_path_
set noglob
set exit_status = 0
foreach arg ( $argv )
set alius = 'alias $arg'
switch ( $#alius )
case 0 :
breaksw
case 1 :
set arg = $alius[1]
breaksw
default :
echo ${arg}: " " aliased to $alius
continue
endsw
unset found
if ( "$arg:h" != "$arg:t" ) then # head != tail, don't search
if ( -e $arg ) then # just do simple lookup
echo $arg
else
echo $arg not found
set exit_status = 1
endif
continue
else
foreach i ( $path )
if ( -x $i/$arg && ! -d $i/$arg ) then
echo $i/$arg
set found
break
endif
end
endif
if ( ! $?found ) then
echo no $arg in $path
set exit_status = 1
endif
end
exit ${exit_status}
No entanto, um motivo muito mais comum para que which
seja interrompido é um problema com um dos sistemas de arquivos usados pelos diretórios listados em seu PATH
.
Isso pode ser uma montagem NFS sem resposta ou um sistema de arquivos local exibindo problemas.
Aqui está uma maneira de começar a investigar. Execute este comando e veja onde ele trava:
csh -x /bin/which foo
Outra razão pela qual which
pode ser interrompido pode ser um problema com o arquivo .cshrc
, pois ele é originado no início do script.
1 Pode-se argumentar que, pelo simples motivo de ser um script csh
, which
está quebrado por design; -)