我想要做的是以下内容。 我的脚本读取当前目录中的文件夹名称:
for D in */ ; do
echo $D
done
结果是:
文件夹1 / 文件夹2 / folder3 /
在此之后,我可以将$ D用于其他目的。 我有另一个变量:PATH 我想要做的是以列表或其他形式使变量PATH依赖于$ D.
如果$ D是folder1 /那么PATH就是/ var / lib / idk
如果$ D是folder2 /那么PATH是/ home / lib / user
如果$ D是folder3 /那么PATH是完全不同的东西
然后我想在这样的svn结帐中使用$ PATH
svn checkout svn://svn.something.local/home/idk/$PATH
我已经知道了数组的可能性,但这些例子对于我这个级别的人来说太过于复杂。 有人可以做一个更简单的例子吗?
提前完成
答案 0 :(得分:0)
首先,不建议使用大写变量名,PATH
是一个很好的例子,为什么不呢!
由于您标记了Bash,因此可以使用关联数组:
#!/bin/bash
declare -A paths
paths=(
[folder1/]=/var/lib/idk
[folder2/]=/home/lib/user
[folder3/]='something completely different'
)
for dir in */; do
path=${paths[$dir]}
echo svn checkout svn://svn.something.local/home/idk/$path
done
如果您对输出感到满意,请移除echo
。
答案 1 :(得分:0)
使用case
:
case $D in
folder1*)
path=/var/lib/idk
;;
folder2*)
path=/home/lib/user
;;
folder3*)
path=some other thing
;;
*)
echo "Error, Unknown variable D"
;;
esac