adr*_*TNT 7 shell gnu-screen wget
我正在尝试下载一个文件,wget
但在后台和分离的屏幕内...
我最初的命令是:
wget http://www.example.com/file.zip -O temp/file.zip; mv temp/file.zip downloads/file.zip;
Run Code Online (Sandbox Code Playgroud)
一旦下载,这将很好地移动文件,防止我在downloads/
文件仍在后台下载时处理文件。
现在我需要在带有屏幕的 backgorund 中运行它,所以我运行并分离它:
screen -dm wget http://www.example.com/file.zip -O temp/file.zip;
Run Code Online (Sandbox Code Playgroud)
但是我怎么能仍然传递移动命令并在第一个完成时运行呢?
编辑:我尝试引用基于 DopeGhoti 的回答:
screen -dm 'wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; mv 1.bin 2.bin'
cannot identify account 'wget http:'.
Run Code Online (Sandbox Code Playgroud)
和这个:
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
Run Code Online (Sandbox Code Playgroud)
编辑:我尝试使用完整/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'
Run Code Online (Sandbox Code Playgroud)
adr*_*TNT 13
如果我指定bash -c 就可以了
screen -dm bash -c 'command1; command2;'
Run Code Online (Sandbox Code Playgroud)
用户meuh在评论中提供了这个解决方案,谢谢。