which (AAAAAAALOOOOOOO)

Pawel Wilk siefca w gnu.org
Pią, 27 Lut 2004, 12:24:39 CET


Haaaalo,

Ktoś może zweryfikować mój sposób myślenia o tym.
Czuję się osamotniony w problemie wariującego polecenia
'which'. Niech mnie ktoś przytuli.

Np. pakiet gdm:

jest w nim plik /etc/X11/gdm/Xsession a w nim:

	echo "$0: Beginning session setup..."

	# First read /etc/profile and .profile
	test -f /etc/profile && . /etc/profile
	test -f "$HOME/.profile" && . "$HOME/.profile"

	# Second read /etc/xprofile and .xprofile for X specific setup
	test -f /etc/xprofile && . /etc/xprofile
	test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
	if [ ! -f $HOME/.profile ] && echo $SHELL |grep -q "bash"; then
		test -f $HOME/.bash_profile && . $HOME/.bash_profile
	fi

	.
	.
	.

	# add ssh-agent if found
	sshagent="`which ssh-agent 2>/dev/null`"
	if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
 		command="$sshagent -- $command"
	elif [ -z "$sshagent" ] ; then
    		echo "$0: ssh-agent not found!"
	fi

I w takim układzie which zwraca:

	ssh-agent is a cośtam blebleble na /usr/bin/ssh-agent

I teraz moja wątpliwość:

a.) czy ten Xsession jest źle napisany

b.) czy nasze profile.d i bashrc i profile się w niewłaściwej kolejności
    wywołują i wchodzi do użycia nie ten alias co trzeba

Bo jeśli to a.) to albo poprawki co ma być ładowane, albo rozwiązanie
w stylu:

# *profile* scripts love to play around with 'which' command
# the results can be fatal
which_alias_orig="`alias which 2>/dev/null`"    # pdksh seems to report 'not foud error' on stdout
if [ "$?" != "0" ]; then                        # so this condition is required
  which_alias_orig=""
else
  unalias which
fi
  
# add ssh-agent if found
sshagent="`which ssh-agent 2>/dev/null`"
if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
    command="$sshagent -- $command"
elif [ -z "$sshagent" ] ; then
    echo "$0: ssh-agent not found!"
fi
      
# redefine original 'which' alias if we have changed it before
[ -n "$which_alias_orig" ] && $which_alias_orig

hm?

-- 
siefca



Więcej informacji o liście dyskusyjnej pld-devel-pl