在Solaris

时间:2015-12-29 17:32:36

标签: bash shell unix awk solaris

尝试更熟悉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返回的所有内容。

1 个答案:

答案 0 :(得分:3)

Solaris 10的/usr/bin/awk没有system函数,并且在调用未定义函数时不会引发错误。函数的返回值将是它的参数。相反,请使用/usr/xpg4/bin/awknawk

正如Glenn和Andrew指出的那样,如果您需要做的就是多次运行一个shell命令,每次都有一个参数变化,这可以在shell中完成,而不会涉及awk。

for f in *.dmp
do
    nohup scp "$f" username@server:/server/file/path/ &
done