sus*_*mar 3 shell awk solaris csh
我可以通过以下命令获得solaris机器的cpu Mhz.
% /usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print $6}'
Run Code Online (Sandbox Code Playgroud)
1200
当我运行以下命令时,awk输出没有被重定向.
% csh -cf "/usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print $6}' > myoutput"
% cat myoutput
Run Code Online (Sandbox Code Playgroud)
sparcv9处理器的工作频率为1200 MHz,
如何获得以下结果
% cat myoutput
Run Code Online (Sandbox Code Playgroud)
1200
您的问题是$6在传递给csh(并在awk命令中使用)之前由现有shell进行评估.
逃避$应该解决问题:
csh -cf "/usr/sbin/psrinfo -v | grep operate |head -1 | awk '{print \$6}' > myoutput"
Run Code Online (Sandbox Code Playgroud)
或者,更简洁:
csh -cf "/usr/sbin/psrinfo -v | awk '/operate/{print \$6; exit}' > myoutput"
Run Code Online (Sandbox Code Playgroud)