您的位置:首页 > 运维架构 > Shell

转变思维--使用Python生成Shell命令,批量执行程序

2015-06-13 10:35 856 查看
近日经常遇到在Linux shell中批量执行相似命令的情况。比如执行如下命令:

gifsicle --delay=100 gif/App_1_hour_*_down.gif > combine_gif/App_1_hour_down.gif
gifsicle --delay=100 gif/App_1_hour_*_up.gif > combine_gif/App_1_hour_up.gif
gifsicle --delay=100 gif/App_2_hour_*_down.gif > combine_gif/App_2_hour_down.gif
gifsicle --delay=100 gif/App_2_hour_*_up.gif > combine_gif/App_2_hour_up.gif
gifsicle --delay=100 gif/App_3_hour_*_down.gif > combine_gif/App_3_hour_down.gif
gifsicle --delay=100 gif/App_3_hour_*_up.gif > combine_gif/App_3_hour_up.gif
gifsicle --delay=100 gif/App_4_hour_*_down.gif > combine_gif/App_4_hour_down.gif
gifsicle --delay=100 gif/App_4_hour_*_up.gif > combine_gif/App_4_hour_up.gif
gifsicle --delay=100 gif/App_5_hour_*_down.gif > combine_gif/App_5_hour_down.gif

如果手动输入,错误率高,时间成本大,效率非常低下。使用Shell编程很容易批量处理上述程序,但如果不熟悉Shell编程,亦可以轻松实现。关键是思维的转变。我们可以使用Python将上述命令写到一个文件里,然后从文件内容拷贝到#!/bin/bash开头的.sh文件中即可构建出所需的Shell脚本文件。生成上述命令的Python代码如下:
output = open("C:\\Python34\\shell_commands.txt", "w")

for i in range (1, 21):
wr_line_1 = "gifsicle --delay=100 gif/App_" + str(i) + "_hour_*_down.gif > combine_gif/App_" + str(i) + "_hour_down.gif" + "\n"
wr_line_2 = "gifsicle --delay=100 gif/App_" + str(i) + "_hour_*_up.gif > combine_gif/App_" + str(i) + "_hour_up.gif" + "\n"
output.writelines(wr_line_1)
output.writelines(wr_line_2)
output.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息