buninu 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/apps/bunmsh/CHANGELOG.md +262 -0
- package/apps/bunmsh/LICENSE +21 -0
- package/apps/bunmsh/LICENSE-MKSH +295 -0
- package/apps/bunmsh/PORTING.md +192 -0
- package/apps/bunmsh/README.md +801 -0
- package/apps/bunmsh/bunmsh +7 -0
- package/apps/bunmsh/bunshell.md +61 -0
- package/apps/bunmsh/help/README.md +1945 -0
- package/apps/bunmsh/help/alias.md +22 -0
- package/apps/bunmsh/help/basename.md +38 -0
- package/apps/bunmsh/help/builtin.md +25 -0
- package/apps/bunmsh/help/bun.md +27 -0
- package/apps/bunmsh/help/bunmsh.md +47 -0
- package/apps/bunmsh/help/cat.md +31 -0
- package/apps/bunmsh/help/catfancy.md +35 -0
- package/apps/bunmsh/help/cd.md +22 -0
- package/apps/bunmsh/help/chmod.md +27 -0
- package/apps/bunmsh/help/clear.md +21 -0
- package/apps/bunmsh/help/colon.md +22 -0
- package/apps/bunmsh/help/command.md +27 -0
- package/apps/bunmsh/help/cp.md +28 -0
- package/apps/bunmsh/help/cut.md +25 -0
- package/apps/bunmsh/help/date.md +25 -0
- package/apps/bunmsh/help/dirname.md +25 -0
- package/apps/bunmsh/help/echo.md +25 -0
- package/apps/bunmsh/help/env.md +27 -0
- package/apps/bunmsh/help/eval.md +22 -0
- package/apps/bunmsh/help/exec.md +22 -0
- package/apps/bunmsh/help/exit.md +21 -0
- package/apps/bunmsh/help/export.md +22 -0
- package/apps/bunmsh/help/false.md +22 -0
- package/apps/bunmsh/help/find.md +33 -0
- package/apps/bunmsh/help/getopts.md +28 -0
- package/apps/bunmsh/help/grep.md +34 -0
- package/apps/bunmsh/help/head.md +27 -0
- package/apps/bunmsh/help/kill.md +27 -0
- package/apps/bunmsh/help/ln.md +28 -0
- package/apps/bunmsh/help/ls.md +37 -0
- package/apps/bunmsh/help/lsbun.md +29 -0
- package/apps/bunmsh/help/lsfancy.md +37 -0
- package/apps/bunmsh/help/md5sum.md +21 -0
- package/apps/bunmsh/help/mkdir.md +27 -0
- package/apps/bunmsh/help/mktemp.md +26 -0
- package/apps/bunmsh/help/mv.md +26 -0
- package/apps/bunmsh/help/print.md +30 -0
- package/apps/bunmsh/help/printf.md +25 -0
- package/apps/bunmsh/help/pwd.md +21 -0
- package/apps/bunmsh/help/read.md +27 -0
- package/apps/bunmsh/help/readonly.md +27 -0
- package/apps/bunmsh/help/realpath.md +21 -0
- package/apps/bunmsh/help/rm.md +33 -0
- package/apps/bunmsh/help/rmdir.md +27 -0
- package/apps/bunmsh/help/sed.md +29 -0
- package/apps/bunmsh/help/seq.md +29 -0
- package/apps/bunmsh/help/serve.md +50 -0
- package/apps/bunmsh/help/set.md +26 -0
- package/apps/bunmsh/help/sha256sum.md +21 -0
- package/apps/bunmsh/help/shift.md +23 -0
- package/apps/bunmsh/help/sleep.md +25 -0
- package/apps/bunmsh/help/sort.md +29 -0
- package/apps/bunmsh/help/source.md +23 -0
- package/apps/bunmsh/help/tab.md +30 -0
- package/apps/bunmsh/help/tac.md +29 -0
- package/apps/bunmsh/help/tail.md +27 -0
- package/apps/bunmsh/help/tee.md +25 -0
- package/apps/bunmsh/help/test.md +30 -0
- package/apps/bunmsh/help/time.md +29 -0
- package/apps/bunmsh/help/touch.md +26 -0
- package/apps/bunmsh/help/tr.md +26 -0
- package/apps/bunmsh/help/true.md +22 -0
- package/apps/bunmsh/help/type.md +21 -0
- package/apps/bunmsh/help/umask.md +22 -0
- package/apps/bunmsh/help/unalias.md +28 -0
- package/apps/bunmsh/help/uname.md +31 -0
- package/apps/bunmsh/help/unset.md +28 -0
- package/apps/bunmsh/help/wc.md +27 -0
- package/apps/bunmsh/help/whence.md +26 -0
- package/apps/bunmsh/help/which.md +41 -0
- package/apps/bunmsh/help/yes.md +23 -0
- package/apps/bunmsh/package.json +26 -0
- package/apps/bunmsh/serve.js +468 -0
- package/apps/bunmsh/single-exe/README.md +402 -0
- package/apps/bunmsh/single-exe/assetsHelper.js +371 -0
- package/apps/bunmsh/single-exe/assetsLoader.mjs +85 -0
- package/apps/bunmsh/single-exe/assetsPacker.js +218 -0
- package/apps/bunmsh/single-exe/compiled.js +527 -0
- package/apps/bunmsh/single-exe/entry.mjs +17 -0
- package/apps/bunmsh/src/cat-fancy.js +117 -0
- package/apps/bunmsh/src/cat-operands.js +31 -0
- package/apps/bunmsh/src/completion.js +247 -0
- package/apps/bunmsh/src/environment.js +61 -0
- package/apps/bunmsh/src/fancy-ls.js +186 -0
- package/apps/bunmsh/src/find.js +119 -0
- package/apps/bunmsh/src/history.js +198 -0
- package/apps/bunmsh/src/main.js +776 -0
- package/apps/bunmsh/src/mouse.js +103 -0
- package/apps/bunmsh/src/shell.js +3557 -0
- package/apps/bunmsh/test/catfancy.test.js +102 -0
- package/apps/bunmsh/test/reference-source.sh +1 -0
- package/apps/bunmsh/test/reference.test.js +677 -0
- package/apps/bunmsh/test/serve/README.md +3 -0
- package/apps/bunmsh/test/serve/bad.json +1 -0
- package/apps/bunmsh/test/serve/data.json +1 -0
- package/apps/bunmsh/test/serve/data.json5 +1 -0
- package/apps/bunmsh/test/serve/data.jsonc +2 -0
- package/apps/bunmsh/test/serve/data.jsonl +2 -0
- package/apps/bunmsh/test/serve/data.ndjson +1 -0
- package/apps/bunmsh/test/serve/data.toml +3 -0
- package/apps/bunmsh/test/serve/data.ts +15 -0
- package/apps/bunmsh/test/serve/data.xml +1 -0
- package/apps/bunmsh/test/serve/data.yaml +3 -0
- package/apps/bunmsh/test/serve/data.yml +1 -0
- package/apps/bunmsh/test/serve.test.js +241 -0
- package/apps/bunmsh/test/shell.test.js +1778 -0
- package/apps/bunmsh/test/t.sh +12 -0
- package/bin/init.js +11 -3
- package/package.json +2 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Bun Shell builtin 旗標支援表
|
|
2
|
+
|
|
3
|
+
`Bun.$` 的 19 個內建指令各自支援哪些旗標。
|
|
4
|
+
|
|
5
|
+
- 實測版本:Bun 1.4.0(Linux)
|
|
6
|
+
- 原始碼對照:oven-sh/bun `main` @ 8eb5b6e2b5(2026-08-22),`src/runtime/shell/builtin/*.rs`,註冊表在 `src/runtime/shell/Builtin.rs:170-196`
|
|
7
|
+
|
|
8
|
+
旗標有三種下場:**可用**、**吃掉**(收下、不報錯、什麼都不做)、**報錯**。下表只列前兩種 —— 沒列到的旗標都會報錯,至少炸得出來。
|
|
9
|
+
|
|
10
|
+
## 一覽
|
|
11
|
+
|
|
12
|
+
| builtin | 可用 | 吃掉(收下但無作用) |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| `ls` | `-a -A -d -l -R` | `-r -1 -b -B -c -C -D -f -F -g -G -h -H -i -I -k -L -m -n -N -o -p -q -Q -s -S -t -T -u -U -v -w -x -X -Z` |
|
|
15
|
+
| `mv` | — | `-f -h -i -n -v` |
|
|
16
|
+
| `rm` | `-f -r -R -v -d -i -I`<br>`--recursive --verbose --dir`<br>`--interactive=never\|once\|always` | `--preserve-root --no-preserve-root` |
|
|
17
|
+
| `mkdir` | `-p -v` `--parents` `--vebose` | — |
|
|
18
|
+
| `echo` | `-n -e -E` | — |
|
|
19
|
+
| `seq` | `-s/--separator` `-t/--terminator` `-w/--fixed-width` | — |
|
|
20
|
+
| `cp` ※ | `-R -v` | `-n` |
|
|
21
|
+
| `touch` | — | — |
|
|
22
|
+
| `cat` ※ | — | — |
|
|
23
|
+
| `cd` | `-` | — |
|
|
24
|
+
| `exit` | `[n]` | — |
|
|
25
|
+
| `basename` `dirname` `pwd` `export` `which` `yes` `true` `false` | 無旗標 | — |
|
|
26
|
+
|
|
27
|
+
※ `cat` 和 `cp` 在 Linux/macOS 上**不是** builtin(`Builtin.rs:195` 的 `posix_disabled`),會直接交給系統執行檔,旗標全支援。上表是 Windows、或設了 `BUN_ENABLE_EXPERIMENTAL_SHELL_BUILTINS=1` 時的內建版本 —— 反而少很多旗標。
|
|
28
|
+
|
|
29
|
+
## 地雷
|
|
30
|
+
|
|
31
|
+
**`mv -n` / `mv -i` 是空操作,會直接覆蓋。** 這兩個旗標的用途就是防覆蓋,在這裡給的是假的安全感:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
src.txt = "OLD", dst.txt = "KEEP"
|
|
35
|
+
$ mv -n src.txt dst.txt
|
|
36
|
+
$ cat dst.txt
|
|
37
|
+
OLD ← 蓋掉了,沒有任何訊息
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**`ls` 完全不排序**,是 readdir 的原始順序(不是字母序)。`-r` `-t` `-S` 都被吃掉,所以也沒辦法排。
|
|
41
|
+
|
|
42
|
+
**`ls -lh` 的 `-h` 被吃掉**,size 欄仍是 bytes。
|
|
43
|
+
|
|
44
|
+
**`seq -w` 不補零,而且尾端多一個分隔符**:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
bun: seq -w 8 11 → 8\n9\n10\n11\n (GNU: 08 09 10 11)
|
|
48
|
+
bun: seq -s , 1 3 → "1,2,3," (GNU: "1,2,3\n")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**`mkdir --verbose` 會報錯,`mkdir --vebose` 才行。** 原始碼註解說這個拼錯是刻意保留相容性用的,但沒有同時接受正確拼法。
|
|
52
|
+
|
|
53
|
+
**`pwd` 不吃任何參數**,`pwd -P` 直接失敗。
|
|
54
|
+
|
|
55
|
+
**`basename` 沒有 suffix 參數。** `basename x.txt .txt` 會把兩個都當成路徑,各印一行。
|
|
56
|
+
|
|
57
|
+
**`touch` 一個旗標都沒有**,只有 `touch file` 可用。
|
|
58
|
+
|
|
59
|
+
## 實務結論
|
|
60
|
+
|
|
61
|
+
`Bun.$` 裡只信「可用」那一欄。報錯的至少看得到,**「吃掉」那批才是真正的風險** —— 特別是 `mv -n` / `mv -i` 和 `ls` 的排序。需要那些語意時,改用 `Bun.file` / `node:fs` 自己判斷,或明確呼叫系統執行檔(`/bin/mv`)。
|