30

如何从 Windows 中的“start test.bat”之类的终端在 Linux 的新终端中运行 shell 脚本,它也应该在控制台模式下工作。

4

4 回答 4

33

这是一个简单的示例,可以帮助您入门:

要编写 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

这是不同终端仿真器的列表

或者,您只需在当前终端中运行它,而是通过以下方式将其作为背景:

./abc.sh &
于 2012-11-30T16:12:18.967 回答
6

我来到这里是想弄清楚如何让脚本生成一个终端并在其中自行运行,所以对于那些想要这样做的人,我想出了这个解决方案:

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
于 2014-11-04T21:02:12.490 回答
3

对于 gnome 试试这个。

将 ls 替换为您要运行的命令

gnome-terminal -x sh -c "ls|less"

我希望这是你想要的

于 2012-11-30T16:12:10.957 回答
3

截至 2020 年 1 月,-eand-x选项gnome-terminal仍然可以正常运行,但会抛出以下警告:

对于-e

# 选项“-e”已弃用,可能会在更高版本的 gnome-terminal 中删除。

# 使用“--”终止选项并在其后放置要执行的命令行。

对于-x

# 选项“-x”已弃用,可能会在更高版本的 gnome-terminal 中删除。

# 使用“--”终止选项并在其后放置要执行的命令行。

根据上述信息,我确认您可以运行以下两个命令而不会收到任何警告消息:

gnome-terminal -- /bin/sh -c '<your command>'
gnome-terminal -- ./<your script>.sh

我希望这可以帮助目前遇到此问题的其他人:)

于 2020-01-31T07:20:28.503 回答