我正在尋找將文本文件中的變量列表傳遞給簡單的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')。它也會使事情變得更有效率。 –