Я пытаюсь запустить некоторые сценарии bash, которые мы написали для Linux, на Mac OS X Mountain Lion. Скрипт выполняет
#!/bin/bash
sudo su -l <username> << EOF
echo $HOME
#execute command that is only on the path of <username>
EOF
Нет, я запускаю сценарий от имени user1 и пытаюсь переключиться на user2 в сценарии. На самом деле мне нужно, чтобы он работал так, как есть другие части, которые нужно запускать как user1.
В линуксе я получаю
/home/user2
В Mac OS X я получаю
/Users/user1
Таким образом, на самом деле он не выполняет вход в систему, и поэтому любой скрипт, который полагается на то, что мы вошли в систему как пользователь2, затем терпит неудачу, поскольку он не ссылается ни на .bash_profile/.bashrc для пользователя2
Некоторое время боролся с этим, и кажется, что теперь есть способ заставить OS X вести себя так же, как Linux.