Shell 转义字符在gnome外壳中不起作用
如果我在自己的终端中使用Shell 转义字符在gnome外壳中不起作用,shell,terminal,gnome-terminal,Shell,Terminal,Gnome Terminal,如果我在自己的终端中使用 sh projectbingo.sh 它显示为: Hello World hi 当我运行以下代码时: gnome-terminal --window-with-profile=tushar -x ./projectbingo.sh 一个新的终端弹出,但显示: ./projectbingo.sh: line 3: $'\E[H\E[2J': command not found ./projectbingo.sh: line 23: $'\E[H\E[2J
sh projectbingo.sh
它显示为:
Hello World
hi
当我运行以下代码时:
gnome-terminal --window-with-profile=tushar -x ./projectbingo.sh
一个新的终端弹出,但显示:
./projectbingo.sh: line 3: $'\E[H\E[2J': command not found
./projectbingo.sh: line 23: $'\E[H\E[2J': command not found
./projectbingo.sh: line 77: $'\E[H\E[2J': command not found
Got bus address: "unix:abstract=/tmp/dbus- 3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Connected to accessibility bus at: "unix:abstract=/tmp/dbus- 3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Registered DEC: true
./projectbingo.sh: line 79: $'\E[H\E[2J': command not found
Got bus address: "unix:abstract=/tmp/dbus-3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Connected to accessibility bus at: "unix:abstract=/tmp/dbus-3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Registered DEC: true
./projectbingo.sh: line 82: $'\E[H\E[2J': command not found
./projectbingo.sh: line 107: $'\E[H\E[2J': command not found
Got bus address: "unix:abstract=/tmp/dbus-3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Connected to accessibility bus at: "unix:abstract=/tmp/dbus-3G1IPFUIn6,guid=85293fb9a05e2828c07c371800000364"
Registered DEC: true
./projectbingo.sh: line 110: $'\E[H\E[2J': command not found
./projectbingo.sh: line 116: $'\E[H\E[2J': command not found
Hello World\n\nhi
请帮忙 这不是一个终极问题。我怀疑有空壳问题 具体来说,
$'…
符号是特定于bash的扩展,但是您只是通过sh
而不是bash
来运行脚本,因此它不适用
尝试将脚本中的shebang行更改为
#!/bin/bash
这不是壳牌公司特有的问题。我不知道为什么会发生。。。但是当我使用
echo -e "Hello World\nHi"
它起作用了
但当我尝试运行sh projectbingo.sh时,它显示了
-你好,世界
嗨
所以我的问题解决了,但导致新问题的出现
echo
是一个内置的shell,-e
部分是非标准的。同样,应该通过将shell作为bash
而不是sh
运行来解决这个问题。