ฉันพยายามเรียกใช้คำสั่งในฐานะผู้ใช้ที่แตกต่างกัน แต่ในหน้าจอที่แยกออกมาและดูเหมือนจะไม่สามารถรับไวยากรณ์ได้ค่อนข้างถูกต้อง หากฉันแบ่งคำสั่งต่าง ๆ ฉันสามารถทำให้พวกมันทำงานได้ แต่เมื่อฉันรวมคำสั่งทั้งหมดเข้าด้วยกันจะไม่มีอะไรเกิดขึ้น
สิ่งที่ฉันพยายาม:
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