jb - 用轻松的方式写脚本

2023-06-08 11:00:32 +08:00
 thisismr2

Bash 是一个很方便的脚本语言,但是当我们要写复杂的脚本时,考虑到心智负担和可维护性等,我们通常会考虑其他语言,比如 Python 。jb 是一个 javascript 和 bash 的结合体,bun port of zx 。jb 只是一个独立的二进制文件,所以只需要放到 PATH 里即可,当然用 nami 也可以安装。

https://github.com/txthinking/jb

shebang

创建一个 script.js

#!/usr/bin/env jb

$`ls -l`

var output = $1`whoami`
$(`echo ${output}`)
chmod +x ./script.js
./script.js

jb

jb ./script.js

也可以执行远程脚本

jb https://www.txthinking.com/script.js

例子:写个简单的 brook linux 一键脚本

#!/usr/bin/env jb

// 检查 joker ,没有就安装
if(!which('joker')){
    cp('https://github.com/txthinking/joker/releases/latest/download/joker_linux_amd64', '/usr/bin/joker')
}
// 检查 brook ,没有就安装
if(!which('brook')){
    cp('https://github.com/txthinking/brook/releases/latest/download/brook_linux_amd64', '/usr/bin/brook')
}

echo(`
1. 运行 brook server
2. 运行 brook wsserver
`)
var answer = question(`选择要运行的编号:`)
var sub = ''
if(answer == 1){
    sub = 'server'
}
if(answer == 2){
    sub = 'wsserver'
}

var port = question(`输入监听的端口:`)
var pass = question(`输入一个密码:`)

$(`joker brook ${sub} --listen :${port} --password ${pass}`)
1621 次点击
所在节点    程序员
13 条回复
xiaokongwu
2023-06-08 16:19:24 +08:00
兄弟你这工具名有点秀,以后就是:"你在写什么 jb ?"
maggch97
2023-06-08 17:55:33 +08:00
呃呃,为什么不用 Python 。会写 bash 的人都会写 Python
colom
2023-06-08 19:45:55 +08:00
"你的 jb 不行啊"
cx2ex
2023-06-08 21:49:52 +08:00
装个 jb
Vb374IX98qjj2SgJ
2023-06-09 00:09:39 +08:00
逆天的名字
Al0rid4l
2023-06-09 03:58:02 +08:00
tairan2006
2023-06-09 09:40:02 +08:00
其实可以用 python 写完让 gpt 翻译成 bash
LxnChan
2023-06-09 09:57:30 +08:00
@maggch97 啊?真的假的 我会写 bash 但是不会写 Python (或者说没有深入接触过
julyclyde
2023-06-09 12:46:36 +08:00
啥叫 nami 呀
thisismr2
2023-06-11 14:05:51 +08:00
@Al0rid4l

之前一直在用 zx ,jb 是 zx 的 port 。
好处是不用安装 node 栈,jb 就是一个独立的二进制文件,放到 path 里就可以了
还有就是 zx 需要 await $`ls -l`, jb 不需要 await ,直接 $`ls -l`
thisismr2
2023-06-11 14:11:59 +08:00
@julyclyde

一个方便安装命令的工具,比如

```
bash <(curl https://bash.ooo/nami.sh)
```
```
nami install joker
```

安装运行 brook

nami install brook
joker brook wsserver -l :20000 -p world

安装运行 shadowsocks

nami install shadowsocks
joker ssserver -m aes-256-gcm -k hello -s 10.138.1.6:30000 -U --udp-timeout 60 --tcp-no-delay

查看

joker list
julyclyde
2023-06-12 11:35:53 +08:00
@thisismr2 nami 看着好像 brew 啊
thisismr2
2023-06-12 17:07:18 +08:00
@julyclyde nami 比较简单,只会在保存独立命令文件在 ~/.nami/bin ,不会写很多文件库到其他目录

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/946877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX