2012-12-11 43 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