我正在寻找将文本文件中的变量列表传递给简单的bash命令。基本上我有一个所有Linux命令(commands.txt)的列表。我想从该文件通过每个命令(每上一个新行)对man命令和每个打印到一个新的.txt文件,以便每个变量将被传递到这一点:将变量列表传递给简单的bash命令
man $command > $command.txt
所以每个变量将将其手册页打印到其名称.txt中。请帮忙!我想在bash脚本中做到这一点,但任何将工作的东西将不胜感激。
我正在寻找将文本文件中的变量列表传递给简单的bash命令。基本上我有一个所有Linux命令(commands.txt)的列表。我想从该文件通过每个命令(每上一个新行)对man命令和每个打印到一个新的.txt文件,以便每个变量将被传递到这一点:将变量列表传递给简单的bash命令
man $command > $command.txt
所以每个变量将将其手册页打印到其名称.txt中。请帮忙!我想在bash脚本中做到这一点,但任何将工作的东西将不胜感激。
使用内置命令read
:
cat commands.txt | while read command; do
man $command > $command.txt
done
使用输入重定向而不是'cat':'while命令;做...;完成
这工作完美,没有任何不必要的代码。谢谢!!! –
您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
这里删除所有格式的字符。
这实际上并非如此,您可以像我之前提到的那样将一个命令手册页变成一个.txt文件,并且没有格式错误或附加内容。 –
可能在你的系统上它可能已经工作了,但我在Mac和Linux上试过了,它在输出文件中有所有额外的格式化字符。 – anubhava
我不会像这样盲目输出'man',因为根据你的传呼机,你可能会有惊喜。在我的系统中,我的寻呼机是'vim',你的命令会挂断我的终端。至少,使用'man -P cat $ command'来使用更简单的寻呼机(这里是'cat')。它也会使事情变得更有效率。 –