我希望将文本文件中的变量列表传递给一个简单的bash命令。基本上我有一个所有linux命令(commands.txt)的列表。我想将该文件中的每个命令(每个都在一个新行上)传递给man命令,并将每个命令打印到一个新的.txt文件,这样每个变量都会传递给它:
man $command > $command.txt
所以每个变量都会将其手册页打印到其名称.txt。请帮忙!我想在bash脚本中执行此操作,但任何可行的方法都将受到赞赏。
答案 0 :(得分:2)
使用内置命令read
:
cat commands.txt | while read command; do
man $command > $command.txt
done
答案 1 :(得分:1)
你不能将手册页的输出重定向到这样的文件:
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
删除所有格式字符。