2012-12-11 53 views
2

我正在寻找将文本文件中的变量列表传递给简单的bash命令。基本上我有一个所有Linux命令(commands.txt)的列表。我想从该文件通过每个命令(每上一个新行)对man命令和每个打印到一个新的.txt文件,以便每个变量将被传递到这一点:将变量列表传递给简单的bash命令

man $command > $command.txt 

所以每个变量将将其手册页打印到其名称.txt中。请帮忙!我想在bash脚本中做到这一点,但任何将工作的东西将不胜感激。

+0

我不会像这样盲目输出'man',因为根据你的传呼机,你可能会有惊喜。在我的系统中,我的寻呼机是'vim',你的命令会挂断我的终端。至少,使用'man -P cat $ command'来使用更简单的寻呼机(这里是'cat')。它也会使事情变得更有效率。 –

回答

2

使用内置命令read

cat commands.txt | while read command; do 
    man $command > $command.txt 
done 
+3

使用输入重定向而不是'cat':'while命令;做...;完成 chepner

+0

这工作完美,没有任何不必要的代码。谢谢!!! –

1

CAN手册页不重定向输出到像这样的文件:

man man > man.txt # DON'T DO THIS 

问题上面是输出man.txt文件也会包含很多额外的格式化字符。

下面是编写脚本正确的方法:

while read command; do 
    man $command | col -b > $command.txt 
done < commands.txt 

注意使用col -b这里删除所有格式的字符。

+0

这实际上并非如此,您可以像我之前提到的那样将一个命令手册页变成一个.txt文件,并且没有格式错误或附加内容。 –

+0

可能在你的系统上它可能已经工作了,但我在Mac和Linux上试过了,它在输出文件中有所有额外的格式化字符。 – anubhava