【发布时间】:2012-11-18 21:13:06
【问题描述】:
如何在 Linux 的新终端中从 Windows 中的“start test.bat”之类的终端运行 shell 脚本,它也应该在控制台模式下运行。
【问题讨论】:
-
您需要支持哪些窗口环境?
如何在 Linux 的新终端中从 Windows 中的“start test.bat”之类的终端运行 shell 脚本,它也应该在控制台模式下运行。
【问题讨论】:
这里有一个简单的例子让你开始:
要编写 shell 脚本,请在命令提示符下执行此操作:
echo -e '#!/bin/sh\n echo "hello world"' > abc.sh
这样写:
#!/bin/sh
echo "hello world"
到一个名为abc.sh的文件
接下来,您想通过以下方式将其设置为可执行:
chmod +x abc.sh
现在,您可以通过以下方式运行它:
./abc.sh
你应该看到:
hello world
在您的终端上。
要在新终端中运行它,您可以:
gnome-terminal -x ./abc.sh
或者,如果是xterm:
xterm -e ./abc.sh
这是list of different terminal emulators。
或者,您只需在当前终端中运行它,而是通过以下方式将其作为背景:
./abc.sh &
【讨论】:
我来到这里是想弄清楚如何让脚本生成一个终端并在其中自行运行,所以对于那些想要这样做的人,我想出了这个解决方案:
if [ ! -t 0 ]; then # script is executed outside the terminal?
# execute the script inside a terminal window with same arguments
x-terminal-emulator -e "$0" "$@"
# and abort running the rest of it
exit 0
fi
【讨论】:
对于 gnome 试试这个。
将 ls 替换为你要运行的命令
gnome-terminal -x sh -c "ls|less"
我希望这是你想要的
【讨论】:
截至 2020 年 1 月,gnome-terminal 中的 -e 和 -x 选项仍然可以正常运行,但会抛出以下警告:
对于-e:
# 选项“-e”已弃用,可能会在以后的版本中删除 gnome 终端。
# 使用“--”终止选项并将命令行放到 在它之后执行。
对于-x:
# 选项“-x”已弃用,可能会在以后的版本中删除 gnome 终端。
# 使用“--”终止选项并将命令行放到 在它之后执行。
根据以上信息,我确认您可以运行以下两个命令而不会收到任何警告消息:
gnome-terminal -- /bin/sh -c '<your command>'
gnome-terminal -- ./<your script>.sh
我希望这可以帮助目前遇到此问题的其他人:)
【讨论】: