这可能会推动stackoverflow和serverfault之间的界限,但是这里也是如此。我试图从maven repo中获取war文件,然后将其复制到deploy目录中的远程系统。这就是我所拥有的:
wget -qO- http://somerepo/nexus/content/group/public/com/mycomp/myartifact-0.0.1.war |
ssh remotesystem "cat > /path/to/appserver/deploy/myartifact.war
请注意,为了便于阅读,最多可分为2行
问题在于,当我在Windows上运行时,导致输出重定向到-qO-
的{{1}}(STDOUT
部分只是让评论安静下来)也会导致窗口出现问题将q
翻译为0A
,或将LF翻译为CRLF。我可以只输出dos2unix,但想知道是否有办法在没有额外步骤的情况下执行此操作。有什么想法吗?
-------------------------- EDIT -------------------- ------------
在有人提到之前,我可以这样做:
0D0a
但是ICK!为什么wget将CR添加到二进制文件中?我知道它会转到STDOUT,但是二进制文件转到STDOUT的唯一原因是它可能会被管道输入。二进制是二进制的,将字符注入二进制文件是没有意义的......
--------------------------编辑2 ------------------- --------------
我的wget版本似乎是1.11.4
wget -qO- http://somerepo/nexus/content/group/public/com/mycomp/myartifact-0.0.1.war |
ssh remotesystem "cat | dos2unix > /path/to/appserver/deploy/myartifact.war
这是使用C:\Temp>"C:\Program Files (x86)\Gnu\GetGnuWin32\gnuwin32\bin\wget" -V
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\Gnu\GetGnuWin32\gnuwin32/etc/wgetrc
GNU Wget 1.11.4
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Currently maintained by Micah Cowan <micah@cowan.name>.