Я хочу, чтобы определить, выполняется ли файл script или источник.
Например,
# Shell script filename build.sh
if [ "x$0" = "xbash" ]; then
echo "I am sourced by Bash"
else
echo "I am executed by Bash"
fi
Если я набрал
source build.sh
он будет выводиться, я получаю Bash.
Если я набрал
./build.sh
он будет выводиться. Я выполняю Bash.
В настоящее время я использую $0 для этого. Есть ли лучшая идея?
Вдохновленный Tripeee, я нашел лучший способ:
#!/bin/bash
if [ "x$(awk -F/ '{print $NF}' <<< $0)" = 'xcdruntime' ]; then
echo Try to source me, not execute me.
else
cd /opt/www/app/pepsi/protected/runtime
fi