Мне удалось исправить эту проблему при установке bumblebee, после перезагрузки все работает правильно, Shell & amp; Compiz on Gnome Classic
sudo apt-add-repository ppa:mj-casalogic/bumblebee
sudo apt-get update && sudo apt-get install bumblebee
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
Научите человека ловить рыбу:
Внимательно прочитайте сообщение об ошибке и попытайтесь выяснить, откуда оно исходит
В этом случае мы имеем:
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
После подсчета символов в вашем скрипте (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.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.
После подсчета символов в вашем скрипте (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
.