将变量列表传递给simple bash命令

时间:2012-12-11 17:08:10

标签: linux bash ssh

我希望将文本文件中的变量列表传递给一个简单的bash命令。基本上我有一个所有linux命令(commands.txt)的列表。我想将该文件中的每个命令(每个都在一个新行上)传递给man命令,并将每个命令打印到一个新的.txt文件,这样每个变量都会传递给它:

man $command > $command.txt

所以每个变量都会将其手册页打印到其名称.txt。请帮忙!我想在bash脚本中执行此操作,但任何可行的方法都将受到赞赏。

2 个答案:

答案 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删除所有格式字符。