Intereting Posts
Команды вырезания и вставки Как я могу контролировать расширение скобки bash, чтобы делать правильную вещь (что zsh делает автоматически)? Centos 7, я думал, что «yum install ___» тоже должен был получить все зависимости? synclient не находит свойства synaptics, несмотря на Synaptics Touchpad в списке xinput Проблема с пониманием привязок ключей Добавление Ctrl-L в качестве «чистой» горячей клавиши в ksh OpenBSD как добавить устройство loop на Fedora 23 с помощью losetup? Правильно ли задавать переменную $ TERM вручную? X имеет пустой экран, но явно работает Почему замена новых строк с использованием g / re / p распространяется только на каждую другую строку в Vim? Как я могу создать цикл for, запускающий множество процессов? Как установить Gnome Schedule в Cent Os 7 Postfix: Могу ли я настроить его на * не * включить исходный адрес электронной почты на непоставленный? Значение букв, следующих за номерами шин в usbmon как печатать ближайший столбец при поиске определенных строк

запустить две команды в отключенном экране

Я пытаюсь загрузить файл с wget но в фоновом режиме и внутри экрана, который отделяет …

Моя первоначальная команда:

 wget http://www.example.com/file.zip -O temp/file.zip; mv temp/file.zip downloads/file.zip; 

Это будет красиво перемещать файл после загрузки, не позволяя мне обрабатывать downloads/ файлы, пока они все еще загружаются в фоновом режиме.

Теперь мне нужно запустить это в backgorund с экраном, поэтому я запускаю и отсоединяю его:

 screen -dm wget http://www.example.com/file.zip -O temp/file.zip; 

Но как я могу передать команду move и запустить ее, когда она будет завершена?

Редактировать: я пробовал цитаты на основе ответа DopeGhoti:

  screen -dm 'wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; mv 1.bin 2.bin' cannot identify account 'wget http:'. 

и это:

  screen 'wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; mv 1.bin 2.bin' cannot exec 'wget http://mirror[...] no such file or directory 

Редактирование: я пытался использовать полные /usr/bin/wget и /usr/bin/mv пути, он жалуется на отсутствие имени сеанса, я дал ему имя сеанса с -S foo , теперь он выходит молча, нет такого экрана для возобновления и нет файлы загружены:

 screen -dm -S foo '/usr/bin/wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; /usr/bin/mv 1.bin 2.bin' 

Поместите всю последовательность команд, которые вы отправляете на screen в кавычки; в противном случае первая точка с запятой завершает эту команду и отправляет остаток в оболочку, в которую вы вызываете screen :

 screen -dm 'wget http://www.example.com/file.zip -O temp/file.zip; mv temp/file.zip downloads/file.zip' 

Однако может быть разумным только перемещать файл, если загрузка выполнена успешно:

 screen -dm 'if wget http://www.example.com/file.zip -O temp/file.zip; then mv temp/file.zip downloads/file.zip; fi' 

Он работает, если я укажу bash -c

 screen -dm bash -c 'command1; command2;' 

Пользователь meuh предоставил это решение в комментариях, спасибо.