我记得当初学Linux的时候,学了一点bash
的知识
不过后来没怎么用到,差不多忘光了,因为很少运维,都是写写代码,打打命令
bash
不常用,经常学了就忘,看了看用bash
写mysql
操作的时候,感觉这是什么语言,这么乱
这里我想向各位参考一下,写脚本的时候,针对不同的方向可以选择哪些脚本语言来开发?
比如说,
- 后台运维方面选
bash
还是python
- 系统安全 与 文件操作
- 网络安全 和网络管理
- 等等…
ps: 我记得chez scheme
支持写 Shell Scripts
,不知道有没有人用过,不知道怎么样,可不可以选这个
贴一下链接
Using Chez Scheme
我也想找个写脚本比较舒服的语言,目前没找到。
bash: 语法有点奇怪,常常因为少空格不生效,而且不报错,调试都靠试。
python: 库很多,但是不是函数式的,很多写法都变的复杂,而且补全不友好。
ruby: 还可以,唯一一点补全不大好。
elixir: 写起来很舒服,就是没有全局包管理,包都依赖具体项目,一般情况下不能写脚本。
lisp系: 括号太多,写脚本多大很多字
haskell: 目前在尝试的语言,写起来好看又舒服,但是要编译才跑的快。
果断Python,系统预装,语法简洁,啥库都有,快速干活
3 个赞
只是处理文本的话用perl会轻松不少。黑魔法写1line也很爽。
简单的工作可以用bash,但如果要处理复杂一点的工作bash看起来就很奇怪
python/ruby这种就看习惯了。用emacs的情况直接拿scratch写elisp也行,常用的操作写函数到init.el里就好。
上面提的haskell因为可以用runhaskell当shebang,所以也行,但因为语言本身的情况,处理非常简单问题,不如上面那些方便。但如果是那种几百行的小脚本到是区别不太大了。
是时候安利nix了,elixir那个依赖问题,可以用nix-shell的shebang(,最近看了一下elixir,那个mix的设计好像就是让你在project里用,不考虑到脚本这样的情况。我搞错了(安利大失败
从实用的角度讲:Python,别扯哪些没用的,能快速干完活才是王道
2 个赞
还没用过nix,nix-shell能当脚本语言用吗?
guo
9
不能熟练阅读使用bash(shell)脚本,基本上等于还没有开始使用linux.
shell脚本与其说是一种编程语言,不如说是linux系统各个程序协同工作机制的一部分。
这也是linux与windows区别最大的地方。长期使用windows的用户,习惯于一个程序做一件事情,互相之间很少有需要互相配合的时候,ole算是微软的一种尝试,但并没有成为windows应用的常态。
而linux则刚好相反(这里不包含图形界面的应用),每个程序只需要专注与自己的功能,然后通过shell, pipe, stdin/stdout/stderr env等机制,互相配合完成复杂的任务。
2 个赞
VonFry
10
不是用nix做脚本语言,每个脚本头有个#!
来指示解释器,这个叫shebang,nix-shell做shebang可以处理这个脚本的运行环境的依赖。脚本还是其它语言,只是可以把依赖隔离开
我是针对你上面说的elixir那条说的
LdBeth
11
推荐 REXX,三十分钟就能学会,语法简单,和命令行程序交互方便。再复杂一点我就用 chez 了。文本处理就用 snobol。
就算只用标准的 shell 脚本,我也不会用 bash,ksh 才是最好的 shell script 语言。推荐 mksh。
1 个赞
参考了下大家的意见,我觉得简单点的就用bash
好了,
复杂一点,涉及到网络,大型脚本的还是用Python
吧,第三方库比较多
没人用chez
写脚本有点遗憾
!!!
你能给我这个REXX
和ksh
的教程地址吗,这些太冷门了
你用过chez
写脚本??不知道手感如何
LdBeth
14
https://regina-rexx.sourceforge.io/
ksh 的教学很常见啊。比如某 Orelly 就有书。而且 ksh 和 bash 都兼容 Bourne shell
用 scheme 写脚本参照 https://scsh.net/
bash 和 python 都用,但更多的时候是在 org-mode 里写 source block ,用什么语言其实不太在意
单纯说脚本的话,我是用bash结合python的,字符串和系统信息处理主要用bash,数据后处理用python,以前为了追求更好的汉字支持(比如中文变量)曾经用过ksh的一个版本。
python可以结合mpi和opencl,又有各种统计学和机器学习工具包,非常强悍。
追求速度的时候,会把对速度限制最大的部分用C++或fortran重写,偶尔用C++结合opencl。
cireu
18
这个Scsh的话IBM出过教程。
不清楚Chez怎么样,不过我觉得要用Scheme写脚本可以用Guile。Guile内置了正则匹配,JSON/XML处理,甚至还有LALR的parser generator,可以解析一些自定义格式(比如需要分析log),用起来比较方便。
需要跨平台使用的脚本,我使用Nodejs,因为在Windows下设置Python环境有多麻烦你懂的。
1 个赞
现在项目一般都用python。
我的bash经验要比大多数程序员硬核,以前在柯达干时维护一个叫digital cinema的老项目,整个系统都是用bash 做胶水语言搭起来的,极其恶心。维护了一年多一点。让我对bash的语法的缺点有深刻的认识。
我现在维护bash的配置都是现用现查。所以别在bash学习上浪费太多时间,有这时间学python。
10 个赞