Ошибка скрипта bash & ldquo; синтаксическая ошибка около неожиданного токена `} '& rdquo; при запуске

В Диспетчере экранов оба монитора должны отображаться бок о бок. Вы можете перетащить левую сторону в правую сторону, чтобы переключить основной монитор между ними.

0
задан 19 June 2012 в 08:59

6 ответов

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 25 July 2018 в 18:25

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 2 August 2018 в 00:37

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 6 August 2018 в 00:45

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 7 August 2018 в 18:11

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 10 August 2018 в 06:56

Несколько проблем здесь:

Во-первых, вы не пишете инструкции if / else в bash. Вместо этого вам нужно что-то вроде:

if <condition>
then
    <action>
elif <other-condition>
then
    <other-action>
else
    <another-action>
fi

Во-вторых, condition, который вы проверяете здесь, не будет работать; оператор if проверяет возвращаемое значение condition. Итак, вам нужно условие, чтобы быть командой (или конвейером команд), которая вернет нулевой или ненулевой статус выхода.

Итак, попробуйте что-то вроде:

if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
    # code to execute if battery is present
else
    # code to execute if battery is not present
fi

В этом случае grep будет успешным (т. Е. Вернуть статус выхода с нуля), если файл BAT0/state соответствует шаблону present:.*yes.

Если вам нужно выполнить сопоставление строк, вам нужно использовать [ с помощью оператора =:

if [ "$somevar" = 'some-string' ]
then
    # code to execute when $somevar equals 'some-string'
fi

Для получения дополнительной информации о if -статах в bash см. справку для if:

help if

Или, см. Справочную страницу bash для общей информации о программировании bash:

man bash
3
ответ дан 15 August 2018 в 18:54

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

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