一、工作中经常使用到一些链接,写了个脚本,可以在控制台进行命令行添加、删除、和打印
利用python的optionparser模块进行解析命令:
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Date : -7-4 15:40:03# @Author : 兜兜有糖# @QQ: 271353531# @github : /liqiushuiimport copyimport jsonfrom optparse import OptionParserclass UrlList:def __init__(self):self.list = []self.reload()def reload(self):try:with open('data.json', 'r') as f:data = json.load(f)if data and len(data) > 0:self.list = dataexcept Exception:print('not found data.json')def resave(self):try:with open('data.json', 'w') as f:json.dump(self.list, f)except Exception:print('can not save data.json')def add(self, url):if not url in self.list:self.list.append(url)self.resave()def remove(self, url):if url in self.list:self.list.remove(url)self.resave()def list_all(self):return copy.copy(self.list)def main():parser = OptionParser() parser.add_option("-a","--add", action="store", dest="url", default=None, help="add url to common url list")parser.add_option("-r","--remove", action="store", dest="remove_url", default=None, help="remove url in common url list")parser.add_option("-l","--list", action="store_true", dest="list_url", default=False, help="list all urls")(options, args) = parser.parse_args()url_list = UrlList()if options.url:url_list.add(options.url)if options.remove_url:url_list.remove(options.remove_url)if options.list_url:for url_item in url_list.list_all():print(url_item)if __name__ == "__main__": main()
然后使用alias 软链接指令,放入启动执行脚本中
LUNLI-MC1:workscript lunli$ vim ~/.bash_profileLUNLI-MC1:workscript lunli$ source ~/.bash_profile
执行效果:
LUNLI-MC1:workscript lunli$LUNLI-MC1:workscript lunli$ ww -lLUNLI-MC1:workscript lunli$ ww -a LUNLI-MC1:workscript lunli$ ww -a LUNLI-MC1:workscript lunli$ ww -a LUNLI-MC1:workscript lunli$ ww -lLUNLI-MC1:workscript lunli$ ww -r LUNLI-MC1:workscript lunli$ ww -l