Синтаксическая ошибка при попытке установить цикл оболочки nohup

Решение Python:

#!/usr/bin/env python
from __future__ import print_function
import sys

with open(sys.argv[1]) as f:
    for line in f:
        for char in line:
            if char.isupper():
               print(" "+char,end="")
            else:
               print(char,end="")

Тестовый запуск:

$ ./add_space_to_upper.py input.txt                        
 Add Data
 Test Something
 Tell Me Who You Are
1
25.02.2017, 21:37
2 ответа

Проблема : оболочка видит отдельные команды, такие как «nohup while true» и "do ./mysync.sh" и "sleep 1800" и "done &".
Здесь оболочка обнаруживает проблему с неожиданным "do".

Решение : вам нужно будет сгруппировать ваши команды в один блок, используя кавычки или создав небольшой сценарий оболочки. Отдайте этот блок nohup, и он заработает.

(Решение A) Присоединяйтесь к командам следующим образом:
nohup bash -c "while true; do ./mysync.sh; sleep 1800; done &"
(Решение B) Ставьте команды пока true; делать ./mysync.sh; спать 1800; done & в mywrapper.sh и запустите это:
nohup mywrapper.sh

2
27.01.2020, 23:46

У меня была та же проблема, и я попробовал решение @Prem. Я получил ошибку отказа в разрешении. Кроме того, если вы хотите запустить nohup с циклом while, используя переменную из файла, двойные кавычки не работают. Он ищет переменную в среде оболочки, а не в файле. Позже,Я запускаю ту же команду с одинарной кавычкой без ошибки:

nohup bash -c 'во время чтения fvar; сделать bash uniqReads.MT.sh $fvar; сделано file.log &'

0
27.01.2020, 23:46

Теги

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