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