有人可以确认这个unix脚本声明的含义:
ls vec_tree"$i"_???.bfs > vec_tree_list$i.txt
我试图将其翻译成Windows cmd代码,但不确定我是否完全理解它。它是在txt中复制bfs文件的内容吗?
该语句最初包含在一个循环中,其中$ i是迭代器变量。
答案 0 :(得分:3)
ls
命令大致相当于Windows中的dir
。它列出了作为参数给出的文件。默认情况下,它列出当前目录中的所有文件
$ ls
file1
file2
file3
"$i"
将替换为循环中变量i
的值。
问号?
是一个匹配任何单个字符的通配符,因此在这种情况下???
匹配任意三个字符。
因此,如果i=3
vec_tree"$i"_???.bfs
匹配当前目录中的文件,例如:
vec_tree3_abc.bfs
vec_tree3_xyz.bfs
vec_tree3_123.bfs
ls vec_tree"$i"_???.bfs
实际上会列出这些文件,如上所述。
最后,> somefile
运算符将标准输出重定向到文件somefile
。在这种情况下,ls
命令的输出将写入名为vec_tree_list3.txt
的文件(假设为i=3
)。
总的来说,该命令会将匹配vec_tree"$i"_???.bfs
的文件名称写入名为vec_tree_list$i.txt
的文件
答案 1 :(得分:1)
回答如何将其转换为Window的cmd语法的问题:
?
操作的工作方式相同。但是,迭代变量的使用方式有所不同$i
- > %i%
因此,您问题中的代码可以转换为
dir vec_tree%i%_???.bfs /B > vec_tree_list%i%.txt
/B
仅在没有其他信息的情况下导致文件输出。