【发布时间】:2023-04-04 03:50:01
【问题描述】:
我正在使用 centos Linux。我想从名为“myscript”的脚本文件在当前窗口终端中打开一个新选项卡。我使用以下脚本
#!/bin/bash
WID=$(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)"| awk '{print $5}')
xdotool windowfocus $WID # line 5
xdotool key ctrl+shift+t #line 6
wmctrl -i -a $WID # line 7
来自此链接Open a new tab in gnome-terminal using command line。我以这种方式运行脚本source myscript,我得到一个错误说Illegal variable name。如何解决这个问题?
笔记!我不想在新窗口中打开新标签。
【问题讨论】:
-
你用的是什么外壳?
csh或tcsh? -
@etan 我怎么知道?
-
echo "$0"说什么?declare -p SHELL说什么?我猜答案是tcsh或csh和declare: Command not found.这将表明您正在使用tcsh/csh并且该脚本用于bash。如果你以./script.sh运行它,它甚至可以从tcsh运行,但在直接运行或源代码运行时不会。 -
echo "$0"给出/bin/tcsh和declare -p SHELL给出declare: Command not found.running ./myscript 给出:./myscript: line 5: xdotool: command not found ./myscript: line 6: xdotool: command not found ./myscript: line 7: wmctrl: command not found -
那是
tcsh,就像我猜的那样。您是否安装了xdotool和wmctrl,因为它看起来不像。这些错误表明以这样的方式运行它已经解决了您遇到的Illegal variable name问题(因为它使用shebang 行中的/bin/bash运行)但是由于脚本使用的命令不可用而遇到了麻烦。