小编bob*_*lan的帖子

我们应该使用 UTF-8 字符吗?在 bash/shell 脚本中?

如果使用bash以下命令启动,这里的简单代码在我的机器上按预期工作:

function ?(){
 date
}
?
Run Code Online (Sandbox Code Playgroud)

其他人使用它会不会有问题,还是普遍存在?

我想知道,因为我现在从未在其他源代码中看到过这样的东西。

编辑:有无限的可能性,例如可以通过使用表情符号来快速区分功能角色。

一个可以修改或删除文件的东西,一个正在进行的工作,一个交互式菜单......

我想我们应该为所有这些制定一个标准,但这似乎是一个有趣的想法。
也许大约 5 个字符的随机行可以帮助我们很好地理解代码在做什么。(当然,我们需要学习如何阅读它们。)

更多编辑:我试一试。现在,如果我在编辑器 (Or cat myscript.sh|grep function) 中折叠所有函数,它们看起来像这样。(geany与此处相比,我的 unicode 在或我的终端中看起来要好得多。)

function ?_1(){
function ??_2(){
function ???__D(){
function ????__X(){
function ?????__Y(){
function ??????_?_P(){
function ????__Z(){
function ?????_?_U(){
function ?????_?_O(){
Run Code Online (Sandbox Code Playgroud)

我使用了奇怪的缩进?显示函数是如何相互关联的,一个符号 /? 明确区分它们的作用。(当然这些不是我真正的函数名,我只是在最后放了一个随机字母,但即使没有它们我们也可以清楚地看到它们之间的关系。)

shell bash unicode

36
推荐指数
1
解决办法
5123
查看次数

使用 ANSI 颜色显示文件

我有一个带有 ANSI 颜色的文件。

测试.txt:
\e[0;31mExample\e[0m

我想在终端中显示这个文件的内容,就像cat那样,但我也想显示颜色。

bash terminal

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

对网页中的点击事件执行 shell 命令

当我单击浏览器中的文本时,有没有办法执行 bash 命令?

网页在计算机 A 上,浏览器在计算机 B 上:我想在计算机 B 上执行代码,例如hsetroot在单击图像时更改墙纸。

shell browser events

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

为什么 bash 命令手册中没有 -e 选项?

我对 bash 手册中缺少的 -e 选项有点困惑。man bash

但它正在使用像 : 这样的脚本 shebang,#!/bin/bash -e当然它是在help set.

为什么 bash 手册的选项中没有列出它?

bash man

14
推荐指数
2
解决办法
2709
查看次数

捕获 'Ctrl + c' 用于 bash 脚本,但不适用于此脚本中打开的进程

我试图在 bash 脚本中有一个交互式程序:

my_program
Run Code Online (Sandbox Code Playgroud)

我希望能够用 'Ctrl + c' 关闭它。但是当我这样做时,我的脚本也正在关闭。

我知道。

trap '' 2
my_program
trap 2
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我无法my_program用 Ctrl + c关闭。

您知道如何在程序上允许 Ctrl + c ,但不关闭运行它的脚本吗?

编辑:添加示例

#!/bin/bash
my_program
my_program2
Run Code Online (Sandbox Code Playgroud)

如果我使用 Ctrl + c 关闭my_programmy_program2则永远不会执行,因为整个脚本已退出。

bash trap

11
推荐指数
2
解决办法
2357
查看次数

PS1真的是一个环境变量吗?

我一直以为这PS1是一个环境变量。.bashrc但是当我检查Ubuntu 的默认值并PS1检查时

grep PS1 /etc/skel/.bashrc
Run Code Online (Sandbox Code Playgroud)

没有export PS1

如果没有export,是不是说明它不是环境变量?

bash environment-variables

9
推荐指数
1
解决办法
2018
查看次数

通过网络复制屏幕 Xorg (Xpra ?)

我正在寻找一种在网络上复制我的桌面的方法。(可以在 Web 浏览器客户端上运行的东西会很棒。)

  • 我尝试使用vnc/x11vnc但质量/帧率太低。(智能手机客户端的 CPU 太高 - 我认为。)

  • 我试图将屏幕转换为流媒体视频,ffmpeg但我做不到。(质量差,不是真正的流媒体系统)

有没有办法做到这一点 ?也许通过使用 X11 转发和复制屏幕?

ssh -Xxrandr -d :0 --output HDMI-1 --auto也许的混合?(此xrandr代码重复屏幕上HDMI-1

喜欢:(xrandr -d :0 --output http://192.168.1.3:9001 --auto我在做梦。)

编辑:也许xpra可以做我正在寻找的东西?但我现在不能让它工作。

linux xorg ffmpeg x11 xpra

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

要求 sed 忽略所有特殊字符

我使用以下代码来删除一行:

sed -i "0,/$DELETE_THIS/{/$DELETE_THIS/d;}" file.txt
Run Code Online (Sandbox Code Playgroud)

但如果变量DELETE_THIS包含特殊字符,例如.、等/,则此代码将失败...*

有没有办法告诉sed忽略所有特殊字符并将它们用作基本文本?

sed regular-expression

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