小编shi*_*hin的帖子

^ 字符在像 ^X^I 这样的序列中是什么意思?

我正在从 zsh 邮件列表中阅读有关键绑定的消息,我想知道我需要按哪个键:

  1. ^X^I(我认为Ctrl-X Ctrl-I,首都XI
  2. ^[^@(我觉得Ctrl-Esc-@??)
  3. ^X^[q(我觉得Ctrl-X Esc-q??)
  4. ^XQ (我认为Ctrl-X和 Q ??)

来自zsh 上的 Archlinux wiki 页面

  1. ^[[1;3A
  2. ^[[1;3D

bindkey

  1. ^[[1;5C
  2. ^[[A

我知道这^[意味着 Esc,但我不确定如何找到其他人。是否有任何官方参考或网站列出这些?

terminal keyboard escape-characters

23
推荐指数
2
解决办法
2089
查看次数

为什么括号返回退出状态而不是大括号

我知道括号导致命令在子shell中运行,大括号导致命令组合在一起但不在子shell中。

当我用括号运行它时:

no_func || (
    echo "there is nothing"
    exit 1
)

echo $?
Run Code Online (Sandbox Code Playgroud)

这将返回退出状态:

/Users/myname/bin/ex5: line 34: n_func: command not found
there is nothing
1
Run Code Online (Sandbox Code Playgroud)

但是当我使用大括号时:

no_func || {
    echo "there is nothing"
    exit 1
}

echo $?
Run Code Online (Sandbox Code Playgroud)

这不会返回退出状态。

/Users/myname/bin/ex5: line 34: no_func: command not found
there is nothing

Run Code Online (Sandbox Code Playgroud)

但是为什么一个返回退出状态而另一个不返回?

bash shell-script

5
推荐指数
2
解决办法
990
查看次数

为什么文本编辑器显示与 cat 命令不同

我跑:

$ man cd > mancd
$ cat mancd
Run Code Online (Sandbox Code Playgroud)

这按预期显示。但是当我用 VSCode 和 vim 打开文件时,它们是完全不同的。

在此处输入图片说明

在此处输入图片说明

为什么会这样以及如何将手册页正确重定向到文件。

man editors cat

5
推荐指数
1
解决办法
417
查看次数

如何用空格替换斜杠

我正在尝试用空格替换斜杠:

category='dir1/dir2/dir3'
category="${category//\// /}"
echo $category
dir1 /dir2 /dir3
Run Code Online (Sandbox Code Playgroud)

我想得到dir1 dir2 dir3.

我怎样才能使用 Bash 得到这个?

bash

4
推荐指数
1
解决办法
655
查看次数

jq如何将文件中的对象添加到文件中的数组中

我在一个数组中有一个包含以下内容的文件。我FAVORITE_FULL在我的 Bash 脚本中调用它。

[
    {
        "name": "__SOLOPIANO__ by rautemusik (rm.fm)",
        "url_resolved":"https://rautemusik-de-hz-fal-stream14.radiohost.de/solopiano?ref=radiobrowser&listenerid=31363235323832333936-326130333a343030303a33373a34323a633466653a346366663a666561373a38393431-3533343132-53747265616d436865636b426f742f302e312e30",
        "favicon": "https://i.ibb.co/48KRX7M/solopiano.jpg",
        "tags": "ambient,jazz,smooth lounge,smooth,smooth jazz",
        "countrycode": "DE",
        "language": "english,deutsch german,deutsch,german"
    },
    {
        "name": "- 0 N - Smooth Jazz",
        "url_resolved":"http://0n-jazz.radionetz.de/0n-jazz.aac",
        "favicon": "http://www.0nradio.com/images/favicon/mstile-144x144.png",
        "tags": "ambient,jazz,smooth lounge,smooth,smooth jazz",
        "countrycode": "DE",
        "language": "german"
    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

在此过程中,我在文件中创建了一个 JSON。我TEMP_FILE2在我的脚本中调用它。

{
        "name": ".977 Smooth Jazz",
        "url_resolved":"http://19353.live.streamtheworld.com:3690/977_SMOOJAZZ_SC",
        "favicon": "http://977music.com/images/logo.gif",
        "tags": "jazz,smooth jazz",
        "countrycode": "US",
        "language": "english"
    }
Run Code Online (Sandbox Code Playgroud)

现在我想添加TEMP_FILE2FAVORITE_FULL. 我根据这个线程尝试了以下内容。

1.

jq '.[] += ["$TEMP_FILE2"]' …
Run Code Online (Sandbox Code Playgroud)

bash shell-script jq

2
推荐指数
1
解决办法
232
查看次数

修改markdown链接中的URL

我正在尝试修改 markdown 文件。在一个文件中,有很多像这样的链接。

[string one](/stringtwo/#stringthree)
Run Code Online (Sandbox Code Playgroud)

我想将它们更改为以下内容:

[string one](stringtwo.html#stringthree)
Run Code Online (Sandbox Code Playgroud)

删除斜杠并添加.html.

我尝试了以下方法:

sed -i 's/](\(\/.*\)#/](\1.html#/g' file
Run Code Online (Sandbox Code Playgroud)

但它回来了[global configuration](/config/.html#globals)。它不会删除斜杠。

我怎样才能使用bashor来实现这一点sed

bash sed text-processing markdown

2
推荐指数
1
解决办法
535
查看次数

为什么 ${#}、${##} 是 1 而 ${?}、${??} 和 ${!} 是 0 而 ${-} 是 569JNORXZghiklms

我找到了以下内容,想知道在哪里可以找到手册:

? echo ${#}
1

? echo ${##}
1

? echo ${?}
0

? echo ${??}
0

? echo ${!}
0

? echo ${-}
569JNORXZghiklms

? echo ${--}
569JNORXZghiklms
Run Code Online (Sandbox Code Playgroud)

bash

0
推荐指数
1
解决办法
77
查看次数