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