Эта команда имеет пустой вывод.
su user -c "ABC=abc;echo $ABC"
Есть идеи, как определить переменную во входной команде?
Измените ваши кавычки на одинарные кавычки.Двойные кавычки позволяют заменять переменную в текущей среде, где она еще не установлена.Чтобы увидеть разницу, попробуйте свою версию с $USER и сравните ее с этой:
$USER
su user -c 'ABC=abc; echo $ABC; echo $USER'
При использовании варианта оболочки Bourne:
ABC=abc su user -c 'echo $ABC'
Если нет, используйте env.
env ABC=abc su user -c 'echo $ABC'