所以我正在尝试创建一个bash脚本,为目录中的每个文件执行某些操作。这是我的剧本。问题是这个脚本在每个空间上分开,我宁愿将它拆分在新行上。所以它看起来就像ls print。 (我要把其他代码放在do里面,echo只是一个测试)
#! /bin/bash
for file in $(ls)
do
echo $file
done
那么我该如何解决这个问题?
答案 0 :(得分:5)
您最好避免使用ls
(Why you shouldn't parse the output of ls)的结果。
相反,做一些事情:
for file in /your/dir/*
do
echo "$file"
done
答案 1 :(得分:0)
仅选择文件:
while read -r file; do
echo "$file"
done < <(exec find -xtype f -maxdepth 1 -mindepth 1)
或者只是过滤它们
for file in *; do
[[ -f $file ]] || continue
echo "$file"
done