从 xinitrc 中的进程替换执行命令

从 xinitrc 中的进程替换执行命令

我觉得像.xinitrc这样

#!/bin/sh

bash <(sed -n 'H
    /^exec ./{
    x
    s/\([^\n]\+ &\n\)*exec .*//
    p
    }' /etc/X11/xinit/xinitrc)

xmonad &
# ...
exec xterm

首先执行标准xinitrc减去最后一位的情况比简单复制标准文件(减去最后一位)的情况要干净。但是,由于某种原因,它不起作用。有了它,startx就不用离开控制台。我究竟做错了什么?

答案1

它不起作用,因为您正在尝试使用进程替换/bin/sh(从#!-line 可以看出),它不支持这些。使用知道如何进行进程替换的shell,例如bash或。zsh

另一种方法(可能更可靠)是~/.xinitrc通过复制系统版本来创建自己的文件,然后进行更改。

相关内容