Разветвленный процесс никогда не завершается

Это:

test.sh: line 22: syntax error: unexpected "(" (expecting "fi")

не является сообщением об ошибке, о котором сообщает bash. Это то, о чем сообщает оболочка Almquist и ее производные, такие как dashили busybox sh:

.
$ grep -z '(expecting' /bin/dash
%s unexpected (expecting %s)
Оболочки на основе

ash-не поддерживают массивы, этот скрипт предназначен дляbash(3.2 или выше ), на что указывает #!/bin/bashshe -bang, хотя он больше похож на смесь между bash, zshи ksh93, если он предназначен для проверки четырехзначных -адресов IPv4, где части ограничены 3 десятичными цифрами (в bash, это приведет к некоторым ошибкам о 008.008.008.008, например ).

Со стандартным синтаксисом POSIX sh, который распознается как dash, так и bash, вы могли бы сделать вместо этого:

valid_ip() (
  IFS=.
  set -o noglob
  set -- $1''
  [ "$#" -eq 4 ] || exit
  for i do
    case $i in
      ("" | *[!0-9]*) exit 1;;
    esac
    [ "$i" -le 255 ] || exit
  done
)
-1
06.09.2020, 08:10
1 ответ

Когда вы запускали sysbenchзапуск в фоновом режиме, вы немедленно получали новое приглашение.Это видно из вашего скриншота.

Процесс sysbench, запущенный в фоновом режиме, перед завершением производил вывод в терминале, в результате чего ваше приглашение было перезаписано.

Чтобы получить новое приглашение, просто нажмите Enter один раз.

То же самое происходит с ls -la &, т. е. вы запускаете утилиту в фоновом режиме, и эта утилита перезаписывает приглашение, которое вы получили сразу после ее запуска. Опять же, просто нажав Enter , вы снова отобразите подсказку.

Если это повторяющаяся проблема для вас, и если вам не нужен терминал ни для чего другого во время работы sysbench, то просто не запускайте sysbenchв фоновом режиме (удалите &в конце команды ).

1
18.03.2021, 23:06

Теги

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