如何将条件传递给;至于;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有一些问题,而对包含换行符的文件名没有任何问题。