это мой первый вопрос.
Я все время использую Multisystem, установил его на Kubuntu и Ubuntu и использовал без проблем. Я вытер свой жесткий диск, чтобы попробовать некоторые новые ОС. Я сейчас использую ту же ОС (Ubuntu 12.05), с которой я сначала загружал USB-накопитель, и теперь я получаю эту нелепую синтаксическую ошибку. Я знаю, что сценарий правильный, я выполняю те же самые шаги, которые я использовал для достижения этой точки, и я получаю разные результаты?!?! Я очень смущен этим.
Понятия не имею, как начать решать эту проблему. Теперь я получаю ту же синтаксическую ошибку на Kubuntu, на которой установлена мультисистемная система.
Я запускаю «sh install-depot-multisystem.sh» и получаю «Синтаксическая ошибка: неожиданное перенаправление», это работало буквально 2 дней назад. Единственное, что изменилось, так это то, что у меня на лице выросли волосы на лице, и из-за этого у меня болит голова от удара о стену.
ОС точно такая же, сценарий тот же; но теперь он не будет установлен. Я заблудился и очень надеюсь, что кто-то может помочь.
Добавить
Просто добавить к этому немного
https: //lists.ubuntu .com / archives / ub ... er / 000264.html
Мне нужно было выполнить chmod 777 для скрипта, я все еще получаю синтаксическую ошибку в Kubuntu ... но он был успешно установлен. Я отмечу это как resovled!
В любом случае, спасибо, я попытаюсь улучшить свои навыки Linux.
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт был эффективен даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из них. из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт был эффективен даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из них. из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт работал даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт был эффективен даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из них. из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт работал даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
Скрипт был эффективен даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из них. из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh
это не sh bash Не используйте "sh install-depot-multisystem.sh", просто используйте: install-depot-multisystem.sh
./
или аналогичный. Также должны быть предоставлены исполняемые разрешения, если у них их нет.
– Eliah Kagan
6 July 2012 в 17:40
Скрипт работал даже при синтаксической ошибке, поэтому кажется, что этот вопрос действительно сводится к , как запустить скрипт .
Чтобы запустить скрипт, который находится в текущем каталоге, без явного вызова оболочки, вы должны предвосхитить его имя с помощью ./
. Он также должен быть исполняемым.
chmod u+x install-depot-multisystem.sh
./install-depot-multisystem.sh
Это будет работать только в том случае, если скрипт начинается с строки хеш-банга , указывающей, какая оболочка должна его запускать.
Если вы запустили chmod 777
для скрипта, и это помогло, то причина, по которой он помог, почти наверняка заключалась в том, что он, как владелец скрипта, дал вам права на выполнение скрипта. Вы также дали себе и всем другим пользователям права на чтение и запись, а также разрешение на выполнение для всех остальных пользователей. Это не нужно, потенциально серьезная проблема безопасности. chmod u+x
так же хорош и намного безопаснее.
В качестве альтернативы вы можете запустить скрипт, явно вызвав оболочку, как вы пытались изначально:
sh install-depot-multisystem.sh
Скрипт имеет расширение .sh
, поэтому его следует запускать с sh
. Но в случае, если автор сценария назвал его неверно, и это действительно сценарий bash
, вы можете попробовать запустить с bash
(как предложил geirha ):
bash install-depot-multisystem.sh
Это включено только для полноты - если вы не написали сценарий и не знаете, что он будет работать должным образом, или в инструкциях, сопровождающих сценарий, сказано, чтобы запустить его таким образом, вам следует использовать один из двух предыдущих методов вместо. Многие сценарии будут работать правильно только в том случае, если у них будет собственная оболочка, в которой они будут выполняться (что достигается одним из двух вышеуказанных методов).
При этом вы можете попытаться запустить сценарий в текущем режиме. shell, с текущей средой оболочки, с помощью одной из следующих команд:
. install-depot-multisystem.sh
source install-depot-multisystem.sh
root
Если сценарий устанавливает общесистемную программу или службу может потребоваться запустить от имени пользователя root. Не запускайте скрипт (или что-либо еще) от имени пользователя root, если вы не уверены, что вам нужно это сделать.
Чтобы запустить его от имени пользователя root, поставьте sudo
перед командой, которая его запускает. Любая из этих трех команд будет работать (хотя для первой все еще требуются разрешения на выполнение):
sudo ./install-depot-multisystem.sh
sudo sh install-depot-multisystem.sh
sudo bash install-depot-multisystem.sh