小编MER*_*ose的帖子

符号链接作为 systemd 服务中的工作目录

我有一个服务,WorkingDirectory=/srv/ctr/current它是一个符号链接。

似乎该服务在重新启动时不会在符号链接中进行更改。错误日志报告/srv/ctr/releases/69为位置,但/srv/ctr/current指向/srv/ctr/releases/72。有什么办法可以让 systemd 接受新的目录更改吗?

symlink systemd services

8
推荐指数
1
解决办法
1831
查看次数

除了特定行中每个单词的第一个字母外,将大写替换为小写

我想替换我只收到的大写字母的名字。这些名称与其他应保持原样的信息混合在一起。AUTH:在该行的开头将其标识为应该替换名称的行。

TITLE: Average title
AUTH: SUPERMAN
AFF: Something
AUTH: THE NEW ONE
AFF: Berlin
AUTH: MARS-MENSCH
AFF: Planet Mars
Run Code Online (Sandbox Code Playgroud)

那么应该是

TITLE: Average title
AUTH: Superman
AFF: Something
AUTH: The New One
AFF: Berlin
AUTH: Mars-Mensch
AFF: Planet Mars
Run Code Online (Sandbox Code Playgroud)

我的问题与 Unix 问题“除了第一个(大写)字母以外的西里尔文大写字母之外的所有小写字母”有关但不同,因为我使用罗马字母并且未能采用建议的解决方案。

为了获得相应的行,我使用egrep -rl ^"AUTH:"然后我跟随| xargs sed -r -i '/(AUTH:)/ ??? /\1/g'我不知道用什么替换???的地方。

sed text-processing regular-expression

6
推荐指数
1
解决办法
2249
查看次数

bash 权限被拒绝,但 sh 有效

我在已安装的 Windows 分区上的一个小脚本拒绝直接执行(shebang 是#!/bin/bash),但有趣的是用bash/调用它sh。该脚本只是一个grepsed命令的集合。

驱动器以完全权限安装:

defaults,windows_names,rw,auto,user
Run Code Online (Sandbox Code Playgroud)

因此,对于文件得到

-rwxrwxrwx 1 root root
Run Code Online (Sandbox Code Playgroud)

为文件。

那里发生什么事了?

bash shell-script

6
推荐指数
1
解决办法
2547
查看次数

在循环中创建带有大括号扩展的数组

我想生成一些仅按年份不同的数组。在循环中,我创建了带有大括号扩展和变量的数组。

我尝试了以下代码但没有成功:

LIST={JF,JFE,RFS,JBF,JFI,JMCB}
for year in {1998..2000} {2009..2011}
do
  declare -a 'y$year=('"$LIST"'-$year)'
  echo "${y$year[@]}"
done
Run Code Online (Sandbox Code Playgroud)

结果应该是以下条目的列表:

y1998: JF-1998 JFE-1998 RFS-1998 JBF-1998 JFI-1998 JMCB-1998
y1999: JF-1999 JFE-1999 RFS-1999 JBF-1999 JFI-1999 JMCB-1999
...
y2011: JF-2011 JFE-2011 RFS-2011 JBF-2011 JFI-2011 JMCB-2011
Run Code Online (Sandbox Code Playgroud)

我不需要打印它们,只需在循环中使用它们并将它们作为参数传递即可。因为第二,eval在循环中是不够的。

array shell-script brace-expansion

4
推荐指数
1
解决办法
1400
查看次数