Выбор зависит от Ваших целей.
Intel имеет лучший драйвер с открытым исходным кодом. Они прикладывают усилия к нему сами. Intel графические решения не является лучшими 3D исполнителями, тем не менее, встраиваемыми только.
Nvidia имеет лучший собственный драйвер с большой 3D производительностью, и они предлагают и высокопроизводительные 3D аппаратные средства и встроенные решения. Совершенствование его берет немного внимания при каждом обновлении ядра, даже незначительном. Это не болезненно, на основе моего опыта — просто восстанавливают и переустанавливают. Драйверы с открытым исходным кодом (nouveau) улучшаются и работают хорошо с 2D, но отстают в 3D все же.
AMD/ATI имеет большие аппаратные средства, но их драйверы являются меткой и ниже Intel и ниже Nvidia, или или закрытый исходный код с открытым исходным кодом. Необходимо лучше придерживаться более старых хорошо-поддерживаемых-плат, и люди продолжают жаловаться на незначительные незначительные сбои. Их драйвер с открытым исходным кодом разрабатывает быстро, тем не менее, и возможно через год станет достойным соперником в 3D пространстве.
Michael Mrozek охватывает большинство проблем, и его меры будут работать, так как Вы используете Bash.
Можно интересоваться тем, что способность получить сценарий с аргументами является bashism. В sh
или dash
Ваш main.sh
ничего не повторит, потому что аргументы полученному сценарию проигнорированы и $1
будет относиться к аргументу main.sh.
Когда Вы получаете сценарий в sh
, это - как будто Вы просто копируете и вставили текст полученного сценария в файл, из которого это было получено. Рассмотрите следующее (примечание, я сделал исправление Michael рекомендуемый):
$ bash ./test.sh
A String
$ sh ./test.sh
$ sh ./test.sh "HELLO WORLD"
HELLO WORLD
Я вижу три ошибки:
Ваша строка присвоения является неправильной:
$NAME="a string"
Когда Вы присваиваете переменной, Вы не включаете $
; это должно быть:
NAME="a string"
Вы отсутствуете then
; условная строка должна быть:
if [ -f $HOME/install.sh ]; then
Вы не заключаете в кавычки $NAME
, даже при том, что это имеет пробелы. Исходная строка должна быть:
. $HOME/install.sh "$NAME"
[ -f $HOME/install.sh ] && . $HOME/install.sh $NAME
; Я не должен, вероятно, делать подобных вещей, когда я ищу ошибки
– Michael Mrozek♦
20.12.2010, 21:01
просто установите ваши параметры перед поиском скрипта!
#!/bin/bash
NAME=${*:-"a string"}
if [[ -f install.sh ]];
then
set -- $NAME ;
. install.sh ;
fi
exit;
#!/bin/bash
echo " i am sourced by [ ${0##*/} ]";
echo " with [ $@ ] as parametr(s) ";
exit;
u@h$ ./main.sh some args
i am sourced by [ main.sh ]
with [ some args ] as parametr(s)
u@h$