[英]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.