Решение 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
Проблема : оболочка видит отдельные команды, такие как «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
У меня была та же проблема, и я попробовал решение @Prem. Я получил ошибку отказа в разрешении. Кроме того, если вы хотите запустить nohup с циклом while, используя переменную из файла, двойные кавычки не работают. Он ищет переменную в среде оболочки, а не в файле. Позже,Я запускаю ту же команду с одинарной кавычкой без ошибки:
nohup bash -c 'во время чтения fvar; сделать bash uniqReads.MT.sh $fvar; сделано