В поисках замены OpenVZ в Debian 9 - мне нужно проверить программное обеспечение с 1000+ виртуальными хозяевами

Убедитесь, что сценарий является исполняемым, и запустите сценарий, просто набрав команду, включая ее путь. Например, если сценарий называется foo и находится в текущем каталоге, запустите

./foo

. Получив сообщение об ошибке, вы делаете что-то вроде sh foo . Это запускает сценарий под sh , а не под bash . sh на вашем компьютере - это другая оболочка, возможно, dash, которая не поддерживает синтаксис цикла for, который вы использовали. Запустив ./ foo , ваш сценарий будет выполняться оболочкой, упомянутой в первой строке, то есть bash.

Ваш сценарий выглядит странно в нескольких местах:

  • Всегда заключайте в двойные кавычки замену переменных : «$ 1» , «$ f» и т. Д.
  • ] Этот цикл while ["$ *"! = ""]… - очень окольный способ перебора аргументов скрипта.Простой идиоматический способ -

     для x; do 
    count_lines "$ x" 
    done 
     

    или

     для x в "$ @"; сделать 
    count_lines "$ x" 
    готово 
     
  • Я не уверен, что вы пытаетесь сделать с title = $ (grep -oPm1 "( ? ) [^ ; «$ 0» - это путь к сценарию, поэтому вы ищите регулярное выражение (? ) [^ в пути к сценарию, который не имеет особого смысла.

0
14.09.2018, 02:01
1 ответ

Начните изучать контейнерные технологии Linux, такие как LXC, Docker или systemd -nspawn. Все они используют одни и те же средства ядра (пространства имен ), но предоставляют разные уровни абстракции и разные инструменты.

2
28.01.2020, 02:31

Теги

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