小编ada*_*009的帖子

编译后的 shell 脚本对性能更好吗?

经过一番谷歌搜索,我找到了一种将 BASH 脚本编译为二进制可执行文件的方法(使用shc)。

我知道 shell 是一种解释性语言,但是这个编译器有什么作用呢?它会以任何方式提高我的脚本的性能吗?

performance shell compiling compiler

21
推荐指数
3
解决办法
3694
查看次数

按空格键继续(不是 ENTER)

我知道这个问题已经被问过并回答过,但我找到的解决方案会侦听空间并输入

while [ "$key" != '' ]; do
        read -n1 -s -r key
done
Run Code Online (Sandbox Code Playgroud)

有没有办法(在bash 中)制作一个等待空格键的脚本?

bash shell-script read wait

9
推荐指数
1
解决办法
1289
查看次数

如何使用屏幕控制systemd服务?

我已经设置了一个 systemd 服务来运行我的 Minecraft 服务器。现在,我需要它在服务器崩溃时重复启动脚本。到目前为止,这是我的代码:

#!/bin/bash

while true; do
    cd /home/mcserver/Spigot
    echo Starting Spigot...
    echo 600 > ./restart-info
    java -jar spigot.jar
    echo Server has stopped or crashed, starting again in 5 minutes...
    sleep 300
done
Run Code Online (Sandbox Code Playgroud)

我实际上可以查看spigot.jarusing的输出systemctl status spigot,但我也想控制服务器控制台,也许使用screen.

当我尝试这样做时:

screen -S "Spigot" java -jar spigot.jar
Run Code Online (Sandbox Code Playgroud)

我会得到Must be connected to a terminal错误。此命令仅适用于终端(而不适用于脚本),我可以使用screen -r.

有没有办法“绕过”这个屏幕错误?我已经尝试script /dev/null在屏幕命令之前放置。我不想将 screen 与 -d 和 -m 一起使用,因为它会在后台运行并且脚本会不断重新启动我的服务器。

bash gnu-screen

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

标签 统计

bash ×2

compiler ×1

compiling ×1

gnu-screen ×1

performance ×1

read ×1

shell ×1

shell-script ×1

wait ×1