29df95079d
Bash seems to be smart enough to source the file when execve returns ENOEXEC, but other shells might not be. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
35 lines
579 B
Bash
Executable File
35 lines
579 B
Bash
Executable File
#!/bin/sh
|
|
|
|
SEDLIST="/usr/bin/sed /bin/sed sed gnused gsed"
|
|
|
|
for SED in $SEDLIST
|
|
do
|
|
if ! test -x $SED ; then
|
|
SED=$(which $SED 2> /dev/null)
|
|
if ! test -x "$SED" > /dev/null ; then
|
|
SED=""
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
echo "HELLO" > .sedtest
|
|
$SED -i -e "s/HELLO/GOODBYE/" .sedtest >/dev/null 2>&1
|
|
RESULT=$(cat .sedtest)
|
|
|
|
if test $? != 0 ; then
|
|
SED=""
|
|
elif test -e ".sedtest-e" ; then
|
|
rm -f ".sedtest-e"
|
|
SED=""
|
|
elif [ "x$RESULT" = "x" ] || [ "$RESULT" != "GOODBYE" ] > /dev/null ;
|
|
then
|
|
SED=""
|
|
fi
|
|
|
|
rm -f .sedtest
|
|
if [ ! -z "$SED" ] ; then
|
|
break
|
|
fi
|
|
done
|
|
echo $SED
|