这个问题已经在这里有一个答案:
我通过在用户指定的目录中的所有文件试图循环。这里是我的代码:
clear
echo "enter the directory path: \n"
read directory
for file in $directory; do
echo $file
done
我的输入,例如:/home/user/Downloads
输出我得到:/home/user/Downloads
如果我使用
clear
for file in *; do
echo $file
done
它的工作原理,但它表明只有当前目录的内容
如果你只是想在文件中的非递归地在当前目录下,结合你有什么:
read -p 'Enter the directory path: ' directory
for file in "$directory"/*; do
echo "$file"
done
如果你想递归循环,你有bash的4,它不是要困难得多:
shopt -s globstar
for file in "$directory"/**/*; do …
但是,如果你只有bash的3,你会关闭使用find
更好。
find "$directory"
你可以写这个剧本
#!/bin/bash
clear
echo "enter the directory path: \n"
read directory
for file in $directory/*; do
echo $file
done
尝试
dir="${GOL_HOME}/test_dir"
file="file_*.csv"
for file in `cd ${dir};ls -1 ${file}` ;do
echo $file
done