相关疑难解决方法(0)

Bash中单引号和双引号之间的区别

在Bash中,单引号('')和双引号("")之间有什么区别?

syntax bash shell quotes

501
推荐指数
6
解决办法
17万
查看次数

回声"#!" 失败 - "未找到事件"

以下失败,我不明白为什么:

$ echo "#!"
Run Code Online (Sandbox Code Playgroud)

以下也失败并出现相同的错误消息:

$ echo "\#!"
Run Code Online (Sandbox Code Playgroud)

错误信息:

-bash: !": event not found
Run Code Online (Sandbox Code Playgroud)

为什么会失败?该怎么echo办呢?

bash echo ubuntu-12.04

13
推荐指数
3
解决办法
2157
查看次数

unix中shell命令的"找不到事件"错误

当我试图删除连续的重复行

awk "!x[$0]++" file

它的报道 x[: Event not found.

甚至同样的情况

sed -i -e "$!N; /^\(.*\)\n\1$/!P;D" file 以及报告

N: Event not found. 我也试过单引号,但没有帮助

任何想法来解决这些问题

unix shell awk sed tcsh

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

如何在bash中逃避感叹号?

有时我觉得有必要在我的git提交消息中加入一些表达性.不幸的是,bash似乎并不喜欢这样.

iblue@silence ~/git/wargames $ git commit -m "Frustrating <insert object of frustration here>!"
-bash: !": event not found
Run Code Online (Sandbox Code Playgroud)

使用反斜杠转义有帮助,但这包括提交消息中的反斜杠.

如何正确地逃避bash中的感叹号?

bash

9
推荐指数
4
解决办法
6391
查看次数

如何在Bash命令替换中解决错误"bash:!d':event not found"

我试图解析VNC服务器启动事件的输出,并在命令替换中使用sed解析时遇到问题.具体来说,远程VNC服务器的启动方式如下:

address1="user1@lxplus.cern.ch"
VNCServerResponse="$(ssh "${address1}" 'vncserver' 2>&1)"
Run Code Online (Sandbox Code Playgroud)

然后解析在此启动事件中生成的标准错误输出,以便提取服务器和显示信息.此时变量的内容VNCServerResponse如下所示:

New 'lxplus0186.cern.ch:1 (user1)' desktop is lxplus0186.cern.ch:1

Starting applications specified in /afs/cern.ch/user/u/user1/.vnc/xstartup
Log file is /afs/cern.ch/user/u/user1/.vnc/lxplus0186.cern.ch:1.log
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式解析此输出,以便提取服务器并显示信息:

echo "${VNCServerResponse}" | sed '/New.*desktop.*is/!d' \
    | awk -F" desktop is " '{print $2}'
Run Code Online (Sandbox Code Playgroud)

结果如下:

lxplus0186.cern.ch:1
Run Code Online (Sandbox Code Playgroud)

我想要做的是在命令替换中使用此解析,如下所示:

VNCServerAndDisplayNumber="$(echo "${VNCServerResponse}" \
    | sed '/New.*desktop.*is/!d' | awk -F" desktop is " '{print $2}')"
Run Code Online (Sandbox Code Playgroud)

在尝试这样做时,我收到以下错误:

bash: !d': event not found
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题.在命令替换中使用sed的方式似乎是一个问题.我很感激指导.

bash parsing sed command-substitution

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

标签 统计

bash ×4

sed ×2

shell ×2

awk ×1

command-substitution ×1

echo ×1

parsing ×1

quotes ×1

syntax ×1

tcsh ×1

ubuntu-12.04 ×1

unix ×1