Я пытаюсь запустить команду от имени другого пользователя, но на отдельном экране и не могу понять синтаксис совершенно правильно. Если я разделю команды, я смогу заставить их работать, но когда я соберу их все воедино, ничего не произойдет.
Что я пытаюсь:
COMMAND='COUNTER=0; while [ $COUNTER -lt 10 ]; do echo Count: $COUNTER; let COUNTER=COUNTER+1; sleep 15; done'
if [ $USER_CURRENT = $USER_RUN_AS ]; then
screen -dmS $REMOTE_REPO_NAME -c "$COMMAND 2>&1 >> $LOG_FILE_URI"
else
# This works, but I would like it to run in detached screen
# sudo su -s /bin/bash $USER_RUN_AS -c " $COMMAND 2>&1 >> $LOG_FILE_URI "
# Tried piping screen to the sudo command
# screen -dmS $REMOTE_REPO_NAME $COMMAND | sudo -S su -s /bin/bash $USER_RUN_AS 2>&1 >> $LOG_FILE_URI
# Tried passing the command to screen
screen -dmS $REMOTE_REPO_NAME -c "$COMMAND 2>&1 >> $LOG_FILE_URI | sudo -S su -s /bin/bash $USER_RUN_AS"
fi