繁体   English   中英

如何在 Mac 终端的 for 循环中编写多个命令

[英]How to write multiple commands in a for loop on Mac terminal

我正在尝试在 Mac 终端的 for 循环中运行多个命令。 我使用分号“;”分隔命令。 第一个命令按我的预期运行。 但是,我希望第二个命令head -n 1 $filename打印列表中每个文件的第一行,但它只打印最后一个文件的第一行。 这是为什么?

我还假设 shell 将针对列表中的一个项目一起运行第一个和第二个命令,然后再跳转到下一个项目并再次运行两个命令。 看起来情况并非如此。 我怎么做?

(base) xyz@zzz-MBP creatures % ls
basilisk.dat        original-basilisk.dat   original-unicorn.dat
minotaur.dat        original-minotaur.dat   unicorn.dat

(base) xyz@zzz-MBP creatures % for filename in *.dat
for> echo $filename;head -n 1 $filename
basilisk.dat
minotaur.dat
original-basilisk.dat
original-minotaur.dat
original-unicorn.dat
unicorn.dat
COMMON NAME: unicorn

我认为这可能是由错误的格式引起的,因为我没有做和做。 然后我这样做了,但它显示了另一个错误。

(base) xyz@zzz-MBP creatures % for filename in *dat                
for> do echo $filename; do head -n 1 $filename; done
zsh: parse error near `do'

这是格式问题。

通过这样做解决:

(base) xyz@zzz-MBP creatures % for filename in *dat                
for> do echo $filename; head -n 1 $filename; done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM