运行dpkg
命令后,我得到以下信息:
dpkg: error: dpkg status database is locked by another process
Run Code Online (Sandbox Code Playgroud)
运行后(从这里):
sudo fuser -vki /var/lib/dpkg/lock
Run Code Online (Sandbox Code Playgroud)
我得到:
USER PID ACCESS COMMAND
/var/lib/dpkg/lock: root 2591 F.... unattended-upgr
Run Code Online (Sandbox Code Playgroud)
我如何检查此过程的进度?
如果有的话,杀死它会有什么后果?
我希望创建一个 *BSD 兼容的 C 函数,如下所示:
int
fs_ext__swap (const char *from, const char *to) {
int res = renameatx_np(AT_FDCWD, from, AT_FDCWD, to, RENAME_SWAP);
return res == -1 ? uv_translate_sys_error(errno) : res;
}
Run Code Online (Sandbox Code Playgroud)
目前我收到一个构建错误 ( 'renameatx_np' is invalid in C99 [-Wimplicit-function-declaration]
),因为据我所知,该renameatx_np
函数是 MacOS 独有的。*BSD 是否有等效版本(我使用的是 OpenBSD 7.3 atm)?
RENAME_SWAP
如果我删除该标志并将函数更改为renameat
(编辑:我尝试过这个,它构建和编译正常,但在上游测试期间导致 ENOENT 错误),我会承担什么风险?
我的计划是使用linkat和unlinkat函数来模拟renameatx_np的功能。
我还能如何处理这个问题?
给定一个 YAML 文件example.yaml
:
node:
sub_node:
get_this:
Run Code Online (Sandbox Code Playgroud)
我想获得一个包含get_this
使用 Mike Farahyq
和字符串的变量sub_node
yaml="$(cat example.yaml)"
nodename=sub_node
sub_yaml= "$(echo "$yaml" | yq -r '.$nodename' )";
# also tried -> sub_yaml= "$(echo "$yaml" | yq -r '.'"$nodename" )";
Run Code Online (Sandbox Code Playgroud)
请注意,这是一个人为的示例,实际上,该sub_node
字符串事先并不知道,因此我需要替换该$nodename
字符串。
我似乎无法弄清楚如何转义 所需的单引号查询字符串yq
。
我该怎么做?