Может кто-нибудь показать мне, как избежать команды оболочки в bash-скрипте, написанном другим bash-скриптом?
Например, мой скрипт выглядит так:
sudo sh -c "echo \"if who | grep tty | grep \`whoami\` > /dev/null\" > test.sh"
sudo sh -c "echo \"then\" >> test.sh"
sudo sh -c "echo \" echo ' log in '\" >> test.sh"
sudo sh -c "echo \"else\" >> test.sh"
sudo sh -c "echo \" exit\" >> test.sh"
sudo sh -c "echo \"fi\" >> test.sh"
Я хочу, чтобы тест скрипта.sh содержит
if who | grep tty | grep `whoami`> /dev/null
then
echo 'user is log in '
else
exit
fi
На самом деле команда whoami заменяется на root.
Решение:
sudo tee /usr/local/bin/test.sh << 'EOF'
if who | grep tty | grep `whoami`> /dev/null
then
echo 'user is log in '
else
exit
fi
EOF