1
Karblue 2016-09-27 17:05:52 +08:00
有时候几行 shell 可以做的事情。你偏偏得装个环境编译一下。
|
2
fuxiaohei 2016-09-27 17:10:44 +08:00
python 一般系统都带有,直接用吧
|
3
Tink 2016-09-27 17:11:52 +08:00 via iPhone
代替是指?
要是自动转换的话感觉不如用 python 再写一遍 |
4
subpo 2016-09-27 17:14:39 +08:00
我都用 node 或者 ruby, 会啥用啥呗
|
5
BOYPT 2016-09-27 17:15:37 +08:00
python 里面各种写 os.system("xxx")
|
7
gouchaoer 2016-09-27 19:03:31 +08:00 via Android
php 可以 exec system shell_exec passthrough pcntl_exec pcntl_exec escapeshellcmd popen 执行 shell , php 又赢了
|
8
mxi1 2016-09-27 19:06:50 +08:00 via iPhone
好像有一个 python shell ,叫 xonsh ?
|
9
rrfeng 2016-09-27 19:07:35 +08:00 1
三种都用。
shell 写经常需要改,不太复杂的。简单省事。比如 cp mv rm 日志 之类的。 python 写稍微复杂一点,需要比较复杂的数据结构的, shell 很难处理的。比如涉及到 json 。 go 写更复杂的,一般用 python 需要额外安装第三方库,或者对并发有要求的。但是一般会写的通用一点,而不是单一功能。扔到服务器上再用 shell 传参调用。 |
11
lairdnote 2016-09-27 19:23:14 +08:00
python 还行点。。。但是 golang 比较麻烦的是 bin 文件太大。。感觉还是做项目做比较好
|
12
Ixizi 2016-09-27 19:23:58 +08:00
简单执行任务用 shell
涉及到数据处理 python 但是通常是 python shell 互相调。。。 |
13
ethego 2016-09-27 19:28:23 +08:00
https://github.com/elves/elvish 混合了 shell 和 go 的语法,非 POSIX
|
14
wizardforcel 2016-09-27 19:31:36 +08:00
直接在终端输入的话我用 shell ,但是写到文件里必然用 python 。
|
16
PyPog 2016-09-27 20:25:07 +08:00 via Android
一般是啥好实现用啥,管他 Python 还是 Shell
|
17
adbaiducom 2016-09-27 20:38:44 +08:00
好几种语言混在一起用,项目人一多特别明显
|
18
cxbig 2016-09-27 20:53:29 +08:00
什么顺手用什么,语言不重要。。。
|
19
KiriGiri 2016-09-27 21:10:43 +08:00
@mxi1 Linux 上的
问题基本不大,以前烦人的问题在新版里基本都解决了, shell 语法和 python 语法也融合得蛮好。 扩展语法需要一点时间学习和适应,特别是 python 模式和 subprocess 模式之间的转换,好在官网的教程还比较详细,不过有些细节的东西还需要自己琢磨。 还有如果需要补全功能的话要安装 prompt-toolkit ,高亮要 pygments 。 |
20
SuperMild 2016-09-27 21:46:19 +08:00 via iPad
Java for Everything
http://www.teamten.com/lawrence/writings/java-for-everything.html |
21
loading 2016-09-27 21:57:12 +08:00 via Android
我目前担忧的是我几台内核还是 2.4 的能不能跑 golang...
|
22
scnace 2016-09-27 22:31:34 +08:00 via Android
自从用了 CLI 总喜欢用 go 撸一些 Terminal 小工具。 跨平台真是太好了 机油也想用的话 直接编译一份二进制文件给他就好了🌚👍
|
23
Karsa 2016-09-27 23:15:03 +08:00 via iPhone
有啊有啊😋
|
24
LazyZhu 2016-09-28 02:22:35 +08:00
@scnace
同感, golang 做跨平台太简单了,基本依赖库都支持的,就是二进制太大了, 1.7 改进了很多,但相对 C/C++仍然很巨大,特别对于空间较敏感的嵌入开发。 |
25
scnace 2016-09-28 02:25:33 +08:00 via Android
@LazyZhu 还有 golang 做嵌入式开发的吗? 话说我的树莓派已经吃灰好久了 233 (cgo 估计接下来的版本支持还会越来越好~
|
26
sherlocktheplant 2016-09-28 02:28:25 +08:00
python 写起来会简单点 学习成本也没那么高 而且有很多现成的库 基本常见 shell 命令做得事情 python 都能找到对应的库
|
27
jiazhoulvke 2016-09-28 04:21:19 +08:00
|
28
sinxccc 2016-09-28 05:08:37 +08:00
这种事情其实还是 Perl 最适合,可惜现在愿意学的人少了…
|
29
xiaket 2016-09-28 07:06:33 +08:00
@sinxccc 可读性差所以不适合吧。很常见的场景是需要改下之前的脚本加个小功能,然后读旧脚本 perl 需要的时间是 python 的两三倍吧?
|
30
hanxiV2EX 2016-09-28 08:11:34 +08:00 via iPhone
Shell 能解决的尽量会用 Shell 。强大的管道绝对屌。复杂点的用 Python 。
|
31
argsno 2016-09-28 08:11:46 +08:00 via Android
在一些不复杂的情况下,用 shell 会合适的多。
|
32
dsg001 2016-09-28 08:20:09 +08:00
简单的命令用 shell , 复杂的 py 搞定,至于简单与否看对 shell 的掌握程度
|
33
anyforever 2016-09-28 09:00:19 +08:00
@PyPog +1 实用为主
|
34
kideny 2016-09-28 09:34:16 +08:00
感觉正则学好了,用啥都行吧。。。 O(∩_∩)O
|
35
yanzixuan 2016-09-28 11:01:09 +08:00
很早就有过一本书,讲用 Python 做系统管理的。
你练熟了就可以直接替代 shell 了。。。 |
36
winkidney 2016-09-28 11:01:26 +08:00
|
37
araraloren 2016-09-28 11:03:36 +08:00
~~简单的事情还是 shell 方便一个两个命令就 OK 了
复杂一点就要求助脚本了,这东西都是互相结合使用。。 |
38
wweir 2016-09-28 12:57:37 +08:00
目前在用 go 维护一个运维调度平台。
平时用的啥的还是 bash 脚本吧 PS :是 bash 不是 shell |
39
fuxpro 2016-09-28 23:26:31 +08:00
我不是出来唱反讽的, 但是说实话, 如果是运维功能的东西, 我推荐还是用系统默认的 Shell , 是本真的也是最稳定的。做得好了也会是最直接和高效的
|
41
kideny 2016-09-29 10:46:54 +08:00
shell debug 困难,不是很现代的语言。
只能用来写一些简单的东西了。。。 |
45
sutra 2016-09-30 17:17:20 +08:00
说到这个环境的问题,我宁可用古老的 awk 来写。
|
46
kotokz 2016-10-09 13:11:20 +08:00
awk or perl
|
49
ethego 2016-11-10 15:12:12 +08:00
@xiaq 那我直接在这里问吧。。在递归下降的解释器中如何实现 call/cc ?因为我不是 cs 出身,所以这个问题我想了蛮久的。。因为我自己也在做一些简单的解释器。好像必须要将解释器完全地转写成尾递归的形式才能做到?不然没办法 stop the world.
|
50
ethego 2016-11-10 15:14:26 +08:00
@xiaq 在一般的递归下降的解释器中,函数总是带有状态的,所以在遇到 call/cc 时候没法保存整个解释器的上下文,需要转写成尾递归的形式将状态一层层传递进来才行。不知道我的理解有没有问题。。
|