我有一个基本脚本来编辑〜/ .config中的配置文件 - 它适用于cd
行,但这似乎是多余的:
dir=$HOME/.config/$1
if [ ! -d "$dir" ]; then :
else
cd "$dir" &&
for file in * ; do
case "$file" in
conf | config | *.cfg | *rc) $EDITOR "$file" ;;
*) : ;;
esac
done
cd - 1>/dev/null;
fi
将其更改为使用变量"$dir"
失败。我做错了什么?
dir=$HOME/.config/$1
if [ ! -d "$dir" ]; then :
else
for file in "$dir" ; do
case "$file" in
conf | config | *.cfg | *rc) $EDITOR "$file" ;;
*) : ;;
esac
done;
fi
答案 0 :(得分:1)
你没有对$dir
内的文件进行全局处理,只列出$dir
本身。试试$dir/*
。
答案 1 :(得分:0)
您的第一个版本在目录上执行*
,生成目录中所有文件的列表。你的第二个版本在列表中只有一个条目---目录本身,而不是它的内容。
答案 2 :(得分:0)
你不能只使用“$ dir”,因为它只提供一个项目:目录。你需要$ dir / *,但也包括路径,所以你必须将其剥离以仅比较文件名:
...
for file in $dir/*; do
filename=`basename $file`
case $filename in
...