尝试更熟悉awk,并使用系统命令跨服务器扫描一堆文件。
所以我试过这个,但它没有用。不是错误,只是没有做任何事情。
ls *.dmp | awk ' {system("nohup scp "$1" username@server:/server/file/path/ &")}'
然而,这有效
ls *.dmp | awk ' {print "nohup scp "$1" username@server:/server/file/path/ &"}' > scp.sh && chmod +x scp.sh && ./scp.sh
目标只是尝试执行awk返回的所有内容。
答案 0 :(得分:3)
Solaris 10的/usr/bin/awk
没有system
函数,并且在调用未定义函数时不会引发错误。函数的返回值将是它的参数。相反,请使用/usr/xpg4/bin/awk
或nawk
。
正如Glenn和Andrew指出的那样,如果您需要做的就是多次运行一个shell命令,每次都有一个参数变化,这可以在shell中完成,而不会涉及awk。
for f in *.dmp
do
nohup scp "$f" username@server:/server/file/path/ &
done