Unix脚本含义

时间:2015-11-21 18:03:55

标签: linux shell

有人可以确认这个unix脚本声明的含义:

ls vec_tree"$i"_???.bfs > vec_tree_list$i.txt

我试图将其翻译成Windows cmd代码,但不确定我是否完全理解它。它是在txt中复制bfs文件的内容吗?

该语句最初包含在一个循环中,其中$ i是迭代器变量。

2 个答案:

答案 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仅在没有其他信息的情况下导致文件输出。

相关问题