скомпилировать Java-программу как другой пользователь

Создать пустой каталог mkdir /tmp/multicd; Перейдите к вновь созданной директории cd /tmp/multicd. Затем выполните следующую команду: она загрузит последнюю версию multicd.sh git clone git://git.tuxfamily.org/gitroot/multicd/multicd.git. Теперь загрузите ISO-файлы, которые вы хотите объединить на CD / DVD Multiboot, и поместите их в каталог с правильным именем; см. здесь для поддерживаемых ISO-файлов http://multicd.tuxfamily.org Например, get caine.iso wget http://www.caine-live.net/Downloads/caine2.5.1.iso Загрузите другие ISO-файлы. Запустите ./multicd.sh. Теперь будет создан файл multicd.iso
1
задан 28 June 2012 в 21:50

6 ответов

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не будет завершена.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 2 August 2018 в 00:29

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не будет завершена.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 4 August 2018 в 15:58

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не завершится.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 6 August 2018 в 00:36

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не будет завершена.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 7 August 2018 в 18:02

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не будет завершена.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 10 August 2018 в 06:50

Проблема с вашим сценарием в том, что строка su $USER вызывает подоболочку, и поэтому следующая команда не будет выполнена до тех пор, пока эта оболочка не завершится.

Вы, вероятно, хотите сделать что-то похожее на:

USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS
2
ответ дан 15 August 2018 в 18:46
  • 1
    Спасибо, сэр, но когда я попытался запустить скрипт, я сказал, что команда javac не найдена. я установил все переменные окружения и добавил путь java в login.def, я думаю, что он снова сбрасывает путь. – ansh 29 June 2012 в 11:06

Другие вопросы по тегам:

Похожие вопросы: