Ben*_* B. 0 directory bash for-loop
我需要循环遍历具有相同名称的各种目录和文件名,但递增1,从001,002,003到100.
/Very/long/path/to/folder001/very_long_filename001.foobar
/Very/long/path/to/folder002/very_long_filename002.foobar
/Very/long/path/to/folder003/very_long_filename003.foobar
$FILES=/Very/long/path/to/folder*/very_long_filename*.foobar
for f in $FILES
do
echo "$f"
done
Run Code Online (Sandbox Code Playgroud)
for我上面写的循环不起作用,我真的不明白为什么!有什么提示吗?谢谢.
改为使用数组:
FILES=(/Very/long/path/to/folder*/very_long_filename*.foobar)
for f in "${FILES[@]}"
do
echo "$f"
done
Run Code Online (Sandbox Code Playgroud)
使其按顺序运行的另一种方法:
for i in $(seq -w 001 100); do
f="/Very/long/path/to/folder${i}/very_long_filename${i}.foobar"
[[ -e $f ]] || continue ## optional test.
echo "$f"
done
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你的for循环不起作用,因为你开始了你的作业$:
`$FILES=...`
Run Code Online (Sandbox Code Playgroud)
应该就是这样
FILES=/Very/long/path/to/folder*/very_long_filename*.foobar
Run Code Online (Sandbox Code Playgroud)
仍然使用数组更安全,因为它在扩展期间保留文件名中的空格for.
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |