我正在尝试编写一个bash脚本,允许用户使用通配符传递目录路径。
例如,
bash show_files.sh *
在此目录中执行时
drw-r--r-- 2 root root 4.0K Sep 18 11:33 dir_a
-rw-r--r-- 1 root root 223 Sep 18 11:33 file_b.txt
-rw-rw-r-- 1 root root 106 Oct 18 15:48 file_c.sql
将输出:
dir_a
file_b.txt
file_c.sql
现在,它的输出是:
dir_a
show_files.sh
的内容
#!/bin/bash
dirs="$1"
for dir in $dirs
do
echo $dir
done
发布于 2013-10-19 04:07:16
引用通配符:
bash show_files.sh '*'
或者让你的脚本接受一个参数列表,而不仅仅是一个:
for dir in "$@"
do
echo "$dir"
done
最好直接在"$@'
上迭代,而不是将其赋值给另一个变量,以便保留其保存自身包含空格的元素的特殊能力。
https://stackoverflow.com/questions/19458104
复制相似问题