我正在尝试遍历用户指定目录中的每个文件。 这是我的代码:
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
它可以工作,但它只显示当前目录的竞争
答案 0 :(得分:1)
如果您只想在当前目录中非递归地使用这些文件,请将您拥有的内容组合在一起:
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"
答案 1 :(得分:0)
您可以编写此脚本
#!/bin/bash
clear
echo "enter the directory path: \n"
read directory
for file in $directory/*; do
echo $file
done
答案 2 :(得分:0)
尝试
dir="${GOL_HOME}/test_dir"
file="file_*.csv"
for file in `cd ${dir};ls -1 ${file}` ;do
echo $file
done