неожиданное завершение и конец документа

Мне удалось исправить эту проблему при установке bumblebee, после перезагрузки все работает правильно, Shell & amp; Compiz on Gnome Classic

sudo apt-add-repository ppa:mj-casalogic/bumblebee
sudo apt-get update && sudo apt-get install bumblebee
0
задан 10 July 2012 в 08:18

15 ответов

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 25 July 2018 в 18:08

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 2 August 2018 в 00:22

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 4 August 2018 в 15:51

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 6 August 2018 в 00:29

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 7 August 2018 в 17:54

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 10 August 2018 в 06:44

Научите человека ловить рыбу:

Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит

В этом случае мы имеем:

bash: -c: line 0: unexpected EOF while looking for matching `"'
bash: -c: line 1: syntax error: unexpected end of file

Q: Посмотрите на сценарий. Где у нас есть вызов 'bash' с опцией -c (command)?

A: внутри функции as_user () у нас есть вызов:

bash -c "$1"

Теперь $ 1 - это первый аргумент, переданный функции as_user (), поэтому мы снова посмотрим на скрипт и выясним, где вызывается as_user () и с каким аргументом.

Некоторые из этих аргументов сложный с тремя уровнями экранирования / цитирования, поэтому они подозрительны.

Вы можете добавить простой оператор отладки в 'as_user' в качестве первой строки, прежде чем что-либо еще будет выполнено:

echo '$1 is:' $1

Это напечатало бы команду непосредственно перед неудачей и показало бы, что это за плохой аргумент.

В более общем смысле: вы можете удобно отлаживать сценарии оболочки, добавляя трассировку (также называемую 'echo'). Просто измените первую строку скрипта на:

 #!/bin/bash -x

, и каждая команда будет напечатана непосредственно перед ее выполнением, что сделает связь между вызовом и ошибкой очевидной. Также есть -v (подробный), который будет печатать каждую строку при ее разборе , перед всеми расширениями history / command / param / file, но я нахожу -v гораздо менее полезной при отладке, чем -x. В редких случаях я просто использую оба: -vx для детального отслеживания расширений, которые происходят перед выполнением.

HTH

1
ответ дан 15 August 2018 в 18:38
  • 1
    Спасибо вам большое! Я спущусь и посмотрю на это. Кажется, отладка такая же, как и в PHP, кроме заголовка bash -x. Удобно, что есть. Я надеюсь, что это поможет мне в программировании Bash. Еще раз спасибо! – WASasquatch 10 July 2012 в 22:50

После подсчета символов в вашем скрипте (SMOP), я заметил, что у вас есть номер ODD (49) из символов «'». Вокруг строки 105 у вас есть unescaped «'»:

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попробуйте быть более формальным: «..., мы вернемся ...» [ ! d2]

Серьезно, один unescaped «'» будет путать синтаксический разбор оставшейся части скрипта (где новый «сопоставление» ' »?).

Исправить это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 25 May 2018 в 08:49
  • 1
    Я знал, что это должно быть что-то, потому что резервное копирование работает нормально, но я не понял, что изменил все строки между двумя версиями. Спасибо. Получил оригинальную работу, просто нужно выяснить мою проблему с загрузкой сейчас. Где он говорит, что файл не существует в директории $ TEMPPLUGINS, когда он полностью работает. Лол – WASasquatch 12 July 2012 в 00:05
  • 2
    вы благословлены очень хорошим глазом, зрелище. Ну, я знаю, ты их считал, но ты благословен в любом случае :) – arielf 18 July 2012 в 13:02

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправьте это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 25 July 2018 в 18:08

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправьте это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 2 August 2018 в 00:22

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправьте это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 4 August 2018 в 15:51

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправить затем используйте -x и -v и прочитайте man bash.

1
ответ дан 6 August 2018 в 00:29

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправьте это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 7 August 2018 в 17:54

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправить затем используйте -x и -v и прочитайте man bash.

1
ответ дан 10 August 2018 в 06:44

После подсчета символов в вашем скрипте (SMOP) я заметил, что у вас есть номер ODD (49) из символов "'". Вокруг строки 105 у вас есть неоткрытый "'":

as_user "screen -p 0 -S craftbukkit -X eval 'stuff \"say $SERVERNAME is shutting down in 30 seconds! Please stop what you are doing. Check back later, we'll be back!\"\015'"

Попытайтесь быть более формальным: "... мы вернемся ..."

Серьезно, один неэкранированный "'" будет путать синтаксический анализ оставшейся части скрипта (где находится новое "совпадающее" ' "?).

Исправьте это, затем используйте -x и -v и прочитайте man bash.

1
ответ дан 15 August 2018 в 18:38
  • 1
    Я знал, что это должно быть что-то, потому что резервное копирование работало нормально, но я не смог понять, что я изменил все строки между двумя версиями. Спасибо. Получил оригинальную работу только сейчас, чтобы выяснить мою проблему с загрузкой. Где говорится, что файл не существует в директории $ TEMPPLUGINS, когда он полностью существует. Лол – WASasquatch 12 July 2012 в 00:05
  • 2
    вы наделены очень хорошим глазом, вальтинатор. О, хорошо, я знаю, что ты их посчитал, но ты в любом случае благословен :) – arielf 18 July 2012 в 13:02

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

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