小编mik*_*ike的帖子

for循环中的命令替换不起作用

我想保留所有文件.bat

我试过

for f in $(ls | egrep -v .bat); do echo $f; done
Run Code Online (Sandbox Code Playgroud)

for f in $(eval ls | egrep -v .bat); do echo $f; done
Run Code Online (Sandbox Code Playgroud)

但是这两种方法产生相同的结果,因为它们打印所有内容。而ls | egrep -v .bateval ls | egrep -v .bat本身工作,如果从使用除了for循环。

编辑

有趣的是,如果我省略-v标志,循环会做它应该做的事情并列出所有以.bat.


随意编辑问题标题,因为我不确定问题是什么。

我正在使用 GNU bash, version 4.1.10(4)-release (i686-pc-cygwin).


例子

$ ls -l | egrep -v ".bat"
total 60K
-rwx------+ 1 SYSTEM SYSTEM 5.3K Jun  6 20:31 fsc*
-rwx------+ …
Run Code Online (Sandbox Code Playgroud)

ls grep bash cygwin for

4
推荐指数
2
解决办法
5588
查看次数

标签 统计

bash ×1

cygwin ×1

for ×1

grep ×1

ls ×1