尝试创建嵌套目录结构YEAR/FILE_TYPE
。
所需的目录结构:
~/2016/doc
~/2016/pdf
~/2016/txt
~/2015/doc
~/2015/pdf
~/2015/txt
等...
使用YEAR变量创建: 设置 varYear (seq 1996 2016)#fish shell语法
创建文件类型变量 设置 varType (doc pdf txt)#fish shell语法
第一次尝试失败: 运行echo" mkdir /" $ varDate / $ varType
第二次尝试失败: 对于 $ varDate 中的i echo $ i" /"的 $ VARTYPE 结束#fish shell语法
如果在for循环中将两个变量组合在一起以创建目录结构,我们将不胜感激。
答案 0 :(得分:3)
$ set years 2015 2016
$ set subdirs doc pdf txt
$ echo {$years}/{$subdirs}
2015/doc 2016/doc 2015/pdf 2016/pdf 2015/txt 2016/txt
只需将echo
替换为mkdir -p
。
见https://fishshell.com/docs/current/index.html#expand-variable
和https://fishshell.com/docs/current/index.html#expand-brace
答案 1 :(得分:2)
在fish
shell中开始使用类似的内容。
这是bash
:
ftypes=(doc pdf txt)
for year in $(seq 1996 2016)
do
for ftype in ${ftypes[*]}
do
echo "mkdir -p $year/$ftype"
#mkdir -p "$year/$ftype"
done
done
答案 2 :(得分:2)
$()
)。因此,除非您打算运行名为set varType (doc pdf txt)
的命令,否则doc
中的parens不会执行您想要的操作。试试这依赖于鱼的独特方式来扩展具有多个值的变量:
set varYear (seq 1996 2016)
set varType doc pdf txt
mkdir -p $varYear/$varType
或者使用传统的循环结构:
for varYear in (seq 1996 2016)
for varType in doc pdf txt
mkdir -p $varYear/$varType
end
end