Да, это возможно. Но ошибки могут случиться. Видеодрайверы довольно сложны, и одновременный запуск нескольких X-серверов не очень распространен, поэтому он не требует особого тестирования.
Ошибки, по определению, являются непреднамеренным поведением. Не существует фиксированного набора «последствий» запуска нескольких X-сессий. Если бы в вашем драйвере не было ошибки, все было бы нормально.
Вам нужна строка shebang, если исполняемый файл не может быть запущен ядром. Ядро может запускать машинный код только в определенном формате(ELF в большинстве вариантов Unix )или иногда в других форматах (, например. в Linux вы можете зарегистрировать исполняемые форматы через binfmt _misc). Если исполняемый файл нуждается в интерпретаторе , то ядро должно знать, какой интерпретатор вызывать. Вот для чего нужна строка shebang .
Если ваш скрипт использует синтаксис fish, его первая строка должна быть
#!/usr/bin/env fish
(Вместо этого вы можете использовать абсолютный путь, но тогда вам придется изменить скрипт, если вы хотите запустить его на машине, где исполняемый файл fish
находится в другом месте, например. /usr/bin/fish
против /usr/local/bin/fish
.)
Если ваш скрипт использует синтаксис sh, используйте
#!/bin/sh
(Все современные системы Unix имеют POSIX sh по адресу /bin/sh
, поэтому вам не нужно env
.)
Если ваш сценарий имеет синтаксис bash (, который представляет собой sh плюс некоторые расширения bash -), используйте
#!/usr/bin/env bash
В Linux на практике #!/bin/bash
также будет работать.
Все это не зависит от того, из какой оболочки вы вызываете скрипт. Важно только то, на каком языке написан сценарий.
Вам необходимо иметь шебанг, чтобы выполнить скрипт, указав его путь. В противном случае операционная система попытается выполнить его, но потерпит неудачу, поскольку это не двоичный исполняемый файл.
Если вы не хотите использовать шебанг, вам нужно указать, что должно выполнять скрипт. В вашем случае это должно быть fish
.
fish myscript.sh
Также работает следующий способ:
sudo./<your script>
, поскольку он запускает bash по умолчанию для команд sudo в большинстве дистрибутивов. Но может быть причина, если вы не хотите менять сценарий.
ПРИМЕЧАНИЕ:это неправильный способ решения таких проблем. Внесите изменения, как , предложенное Жилем
.