如何将条件传递给;至于;bash中的循环命令?

如何将条件传递给;至于;bash中的循环命令?,bash,for-loop,ls,conditional,Bash,For Loop,Ls,Conditional,我想将条件传递给ls或以执行类似操作的命令: for file in *.jpg OR *.jpeg OR *.JPG OR *.JPEG;do done 我试着用,|,或和[]来关闭条件,但没有成功 谢谢。这比: for file in *.jpg *.jpeg *.JPG *.JPEG; do ... done 或: 有关更多示例,请参见此处: 但是,我的第一选择始终是: ls -1 | egrep -i '.jpg|.jpeg' | while read file; do done

我想将条件传递给
ls
以执行类似操作的
命令:

for file in *.jpg OR *.jpeg OR *.JPG OR *.JPEG;do
done
我试着用
|
[]
来关闭条件,但没有成功

谢谢。

这比:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
...
done
或:

有关更多示例,请参见此处:

但是,我的第一选择始终是:

ls -1 | egrep -i '.jpg|.jpeg' | while read file; do

done
附录测试1

如果有人担心特殊字符,以下是som测试:

ls-1:

with?newline
without
with space
with?tab
以*存档;do echo::$file::“;完成

ls-1 |读取文件时;do echo::$file::“;完成

:::with:::
::新行::这比:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
...
done
或:

有关更多示例,请参见此处:

但是,我的第一选择始终是:

ls -1 | egrep -i '.jpg|.jpeg' | while read file; do

done
附录测试1

如果有人担心特殊字符,以下是som测试:

ls-1:

with?newline
without
with space
with?tab
以*存档;do echo::$file::“;完成

ls-1 |读取文件时;do echo::$file::“;完成

:::with:::
::新行::这比:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
...
done
或:

有关更多示例,请参见此处:

但是,我的第一选择始终是:

ls -1 | egrep -i '.jpg|.jpeg' | while read file; do

done
附录测试1

如果有人担心特殊字符,以下是som测试:

ls-1:

with?newline
without
with space
with?tab
以*存档;do echo::$file::“;完成

ls-1 |读取文件时;do echo::$file::“;完成

:::with:::
::新行::这比:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
...
done
或:

有关更多示例,请参见此处:

但是,我的第一选择始终是:

ls -1 | egrep -i '.jpg|.jpeg' | while read file; do

done
附录测试1

如果有人担心特殊字符,以下是som测试:

ls-1:

with?newline
without
with space
with?tab
以*存档;do echo::$file::“;完成

ls-1 |读取文件时;do echo::$file::“;完成

:::with:::
::新行:::
这可能是最简洁、可读性和可维护(可修改)的解决方案

正如tripleee所指出的,brace expansion仅在Bash中可用(asker已指定),因此在某些情况下,其他人可能需要使用:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
    # Do stuff
done
这可能是最简洁、可读性和可维护(可修改)的解决方案

正如tripleee所指出的,brace expansion仅在Bash中可用(asker已指定),因此在某些情况下,其他人可能需要使用:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
    # Do stuff
done
这可能是最简洁、可读性和可维护(可修改)的解决方案

正如tripleee所指出的,brace expansion仅在Bash中可用(asker已指定),因此在某些情况下,其他人可能需要使用:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
    # Do stuff
done
这可能是最简洁、可读性和可维护(可修改)的解决方案

正如tripleee所指出的,brace expansion仅在Bash中可用(asker已指定),因此在某些情况下,其他人可能需要使用:

for file in *.jpg *.jpeg *.JPG *.JPEG; do
    # Do stuff
done

更加简洁:
shopt-snocaseglob;用于*.jp{,e}g}中的文件;做
:)这是相当不可读的,但是,所以我会拨回*{jpg,jpeg}中文件的
;做
@chepner
简明:形容词。用很少的语言表达很多;清晰简洁。
在这个特殊的例子中,只有4种可能性,我觉得你的解决方案有点过分了!更加简洁:
shopt-snocaseglob;用于*.jp{,e}g}中的文件;做
:)这是相当不可读的,但是,所以我会拨回*{jpg,jpeg}中文件的
;做
@chepner
简明:形容词。用很少的语言表达很多;清晰简洁。
在这个特殊的例子中,只有4种可能性,我觉得你的解决方案有点过分了!更加简洁:
shopt-snocaseglob;用于*.jp{,e}g}中的文件;做
:)这是相当不可读的,但是,所以我会拨回*{jpg,jpeg}中文件的
;做
@chepner
简明:形容词。用很少的语言表达很多;清晰简洁。
在这个特殊的例子中,只有4种可能性,我觉得你的解决方案有点过分了!更加简洁:
shopt-snocaseglob;用于*.jp{,e}g}中的文件;做
:)这是相当不可读的,但是,所以我会拨回*{jpg,jpeg}中文件的
;做
@chepner
简明:形容词。用很少的语言表达很多;清晰简洁。
在这个特殊的例子中,只有4种可能性,我觉得你的解决方案有点过分了@tripleee:以我个人的经验,我对ARG_MAX有一些问题,但对包含换行符的文件名一个也没有。@tripleee:以我个人的经验,我对ARG_MAX有一些问题,而对包含换行符的文件名一个也没有。@tripleee:以我个人的经验,我对ARG_MAX有一些问题,但对包含换行符的文件名没有任何问题。@tripleee:根据我个人的经验,我对ARG_MAX有一些问题,而对包含换行符的文件名没有任何问题。