linux - 尝试制作一个 bash 脚本来重新启动某个目录中的所有服务

标签 linux bash

我制作了这个简单的小脚本来尝试重启目录中的所有服务:

    #!/bin/bash
    systemctl daemon-reload
    for service in /etc/systemd/system/multi-user.target.wants/*
    do
        systemctl restart $service
    done;

当我尝试运行它时,出现以下错误:

    Failed to restart etc-systemd-system-multi\x2duser.target.wants-openvswitch.service.mount: Unit etc-systemd-system-multi\x2duser.target.wants-openvswitch.service.mount failed to load: No such file or directory

最佳答案

您需要从$service 变量中提取basename

systemctl restart "$(basename "$service")"

或者您可以使用 ${service##*/} 它将删除直到并包括最后一个斜杠:

systemctl restart "${service##*/}"

关于linux - 尝试制作一个 bash 脚本来重新启动某个目录中的所有服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37549104/

相关文章:

php - 使用 sed 或 awk 将反引号替换为单引号

linux - 日期和条件 bash 命令的奇怪但非常简单的问题

bash - 程序化的 ngrok 隧道 URL

linux - 如何允许应用程序声明 "https"方案 URI? (即如何从 https URL 打开桌面应用程序?)

regex - 使用 grep(或任何其他像 linux cmd 工具一样的 grep)来打印与文件中特定子字符串匹配的整个单词

linux - 我如何知道Linux IO操作历史?

linux - 如何在 Mac 上创建稀疏文件

bash - 读取文件中的日期并添加一天

linux - 在 tcsh 中的每个 cd 命令后自动执行 ls 命令

linux - Bash 脚本日志文件连续显示到屏幕上