作为一名程序猿,每个人都会有一些私家珍藏的脚本,来帮助完成自动化流程。但这些脚本并没有得到很好的管理,导致很多人经常重写一些常用的脚本,浪费了很多时间,最可怕的是,越是不管理的人,可能越是对脚本语言不熟悉,所以每次重写,也是重新学习的过程😱,例如我就是这样, 🤔 你又有没有同感。所以,为了让工作效率看起来不是太傻,那可能就需要一个脚本管理工具,来方便管理。
ll
命令,常用但不是系统默认,每次重装系统或换了电脑,都要重新配置,又不是经常操作,忘的快,总不记得 alias 怎么写,就每次的问 google。 😱。
如果你觉得,你的脚本管理的也是一塌糊涂,并且觉得上面的需求你也有,并且更多,那么欢迎你加入到项目开发里。对没有说错,是邀请你来开发。我要承认,我的对写脚本并不是很好,只可算作初学者。所以,如果有你的加入,才能开发出一款真正有效的应用,如果你也是位初学者,也可把它当做是一次学习。
$ npm install helloshell -g
$ git clone https://github.com/wl879/HelloShell.git
$ chmod 777 ./HelloShell/main.py
$ ln -s "$(pwd)/HelloShell/main.py" /usr/local/bin/helloshell
$ helloshell new name [-l [name]]
新建一个脚本,目前支持 bash/python 模板,参数 -l, --link
设置将脚本链接到 bin
目录下
$ helloshell repo [-d file] [-r github] [-b] [-u]
-d, --dir
设置本地仓库路径
-r, --remote
设置 github 仓库地址
-b, --back
从 github 仓库恢复到本地
-u, --update
更新 github 仓库
$ helloshell link
$ helloshell conf <file> [option [= value]] [--prefix name]
option
输出选项变量option=value
设置并输出变量p, --prefix
设置输出变量名的前缀e.g.
# 写入配置
$ helloshell conf test.ini name=wang sex=man
name="wang";
sex="man";
# 读取配置
$ helloshell conf test.ini
name="wang";
sex="man";
$ helloshell conf test.ini name
name="wang";
$ helloshell args <file> [arguments]
解析参数为 shell 语法格式,以argv_
为前缀
**e.g. **
将下例代码保存为 test.sh
文件, 读取 <file>
中以 "# HELP DOCUMENT" 为开始的注释段落
#!/bin/sh
# HELP DOCUMENT
#
# 参数:
# -t, --text string 示例
# -h, --help 查看帮助
#
eval "$(helloshell args $0 $*)"
if [ $? != 0 ]; then
echo "Argument Error:"
echo $argv_errors
exit 1
fi
if [ $argv_help ]; then
echo "${help_document}"
exit 1
fi
if [ $argv_text ]; then
echo $argv_text
fi
运行结果如下:
$ test.sh --help
参数:
-t, --text string 示例
-h, --help 查看帮助
$ test.sh -t "haha"
haha
$ helloshell echo "#r[abcd]"
$ echo "#b[abcd]" | helloshell
#r[]
= 红色 / #g[]
= 绿色 / #b[]
= 蓝色 / #c[]
= 蓝绿色 / #d[]
= 灰色 / #w[]
= 白色
1
ysicing 2017-07-18 14:09:44 +08:00 1
我将常用的脚本打成 deb 包了,需要的时候 apt install 一下哈
|
2
wl879 OP @ysicing 哈哈,我对脚本真是不太懂,你说的是一个办法,就像我说的,越是不管理的人,可能越是对脚本语言不熟悉的,所以就需要一个简单,好理解的管理方法。并且在 google 上搜了搜,没有找到与我想要的类似的,所以如果真的有这个需求的话,也是个很好项目吧。
|
3
swulling 2017-07-18 15:31:41 +08:00
越是不管理的人,可能越是对脚本语言熟悉的,因为命令都记住了,没必要 alias
|
4
Rice 2017-07-18 15:38:59 +08:00 via iPhone
脚本啊,用到忘记时,我都是直接去 gist 上搜。
|
5
cxbig 2017-07-18 17:10:35 +08:00 1
自己有个私人的 repo 收集常用的 alias 和 function,走到哪 clone 下来,加载到 bashrc 或 zshrc 里就可以用了。
|
6
minuux 2017-07-18 17:19:18 +08:00
试试 ansible
|
7
jyf007 2017-07-18 17:30:21 +08:00
putty-autoinput:{SPACE}{URL:HOST}{TAB}{URL:PORT}{ENTER}{DELAY 3000}{USERNAME}{ENTER}{ENTER}{DELAY 3000}{PASSWORD}{ENTER}
ssh{SPACE}{USERNAME}@{URL:HOST}{SPACE}-p{SPACE}{URL:PORT}{ENTER} |
8
jyf007 2017-07-18 17:31:22 +08:00
dotfile 直接使用 syncthing 同步。
|
9
lithium4010 2017-07-18 18:05:51 +08:00
helloshell 名字太长了,换个短点的做命令更好
|
10
wl879 OP @lithium4010 我好像敲代码时,50% + 的时间都浪费上起名子上了,抽象出一个名字,比抽象出功能还难
|
11
wl879 OP @jyf007 dotfile 简单的研究了一下,不知是不是我没理解,dotfile 主要是备份配置文件的,没用管理脚本功能,而且配置又复杂
|
12
FrankHB 2017-07-18 22:38:31 +08:00
|
13
lgpqdwjh 2017-07-19 09:24:37 +08:00
所以说 想要被管理还得整个 node 咯, 过度轮
|
14
pekingzcc 2017-07-19 12:21:38 +08:00
过度轮,脚本什么的写成 function,常用的 alias 等一块集成到 dotfile 里,放在 repo 中,随时 clone 就可以了。顺便不要脸的放一个自己 dotfile 的 repo: https://github.com/zhangchenchen/clean-dotfile
|
15
lulinux 2017-07-19 15:10:49 +08:00 via Android
crontab 每天备份到另一个 hdd 硬盘。
|