Сценарий оболочки = команда “тест” = простой вопрос

Я нашел этот вопрос спустя четыре дня после того, как я настроил принтер/копировальное устройство/факс Ricoh SP 3200SF с SBS2008.

Я не изменил групповой политики, но я действительно должен был установить сканер для поиска сервера IP-адресом, а не сетевым именем. Таким образом, это сохраняет к \\10.15.1.50\Scans, а не к \\Newport\Scans.

После этого я дал сканеру его собственную учетную запись домена, сделал тот отчет NTFS и полномочия доли к папке Scans, и это работает как чемпион.

0
задан 3 November 2010 в 07:38
3 ответа
#!/bin/bash
ENABLED=1
test "$ENABLED" != "0" || exit 0
echo "wasn't zero"

когда я выполняю это, я добираюсь

[madhatter@risby tmp]$ ./foo
wasn't zero

Так, это кажется мне этим также

  • Вы используете нечетный интерпретатор (какая оболочка Вы выполняющий это под), или
  • Вы берете неправильный 'тест' (Вы могли сделать, 'которые тестируют' и говорят нам результаты или явно используют '/usr/bin/test'?), или
  • (извините об этом) Вы неправы относительно этого, не добираясь до следующей строки (как Janne заявляет выше, мы могли видеть больше сценария оболочки, или Вы могли поместить короткую канарейку как мой оператор эха сразу после теста?
3
ответ дан 4 December 2019 в 13:01

То тестовое заявление в основном говорит "о выходе с кодом возврата 0 (который обычно означает OK в этом замечательном мире Linux/Unix), если $ENABLED установлен на что-то еще, чем 0".

Это разъясняло Вас вообще? Трудно сказать Вам больше, не видя полный сценарий запуска :-)

0
ответ дан 4 December 2019 в 13:01

С некоторым общим предположением здесь, в попытке конкретно ответить на вопрос, то есть:

Таким образом, этот сценарий всегда будет выходить на этой строке независимо от значения переменной является? (так что глючит ).

Да, более или менее, но не обязательно выходить из всего сценария. А еще нет, не глючит; если мои предположения верны .

Как уже упоминалось, трудно дать окончательный ответ, не видя больше сценария, но я полагаю, что у вашего нежелания делиться тем, какой пакет вы добавили, была причина, о которой я не пытаюсь судить. на. Скорее, это просто ваше извинение за предположение, что этот небольшой фрагмент вашего сценария находится в самом начале, вскоре после объявления некоторых параметров, таких как PATH, NAME и т. д., и в сценарии есть еще что-то, вероятно, большая часть, следуя этому. (Отсюда, казалось бы, нелепый ответ на вопрос, почему в сценарии есть это.)

Чтобы уточнить, более чем вероятно, что эта часть скрипта предназначена просто для того, чтобы гарантировать, что при запуске скрипта экземпляр функции/процесса, который он вызывает/использует, еще не запущен или не используется. Другими словами, если скрипт вызывает program, то в основном это проверяет, запущен ли уже program, если да, спокойно выходите,затем сценарий может продолжить работу с гарантией того, что он сможет запустить programбез ошибок, связанных с другим уже запущенным процессом или экземпляром. Особенно, если уже запущенный процесс был установлен с параметрами, отличными от требуемых сценарием, тогда вы будете винить сценарий.

Опять же, были сделаны предположения, и объяснение широкое, но мы надеемся, что оно поможет прояснить этот десятилетний -старый вопрос любому прохожему.

пффтт, 170 просмотров за 11 лет... Ну что ж, достаточно одного голоса, чтобы все это того стоило!

0
ответ дан 8 October 2021 в 11:16

Теги

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