我已在主目录中创建了一个 .xinitrc 文件。想要从目录 ${HOME}/bin/inge 运行文件 xinit.rc。
以下是做事的方式吗?
文件:.xinitrc
#!/bin/bash
source ${HOME}/bin/inge/xinit.rc
文件:${HOME}/bin/inge/xinit.rc
#!/bin/bash
linge_trk="${HOME}/bin/inge"
xmodmap_variant=2
if (( xmodmap_variant == 0 )); then
xmodmap ${linge_trk}/inge-xmodmap
elif (( xmodmap_variant == 1 )); then
xmodmap ${linge_trk}/camswap-xmodmap
else
echo "Not using xmodmap"
fi
答案1
您可能不想创建文件夹,而是~/bin/
希望将特定文件类型放在其适当的目录:
/etc
配置文件,在你的情况inge-xmodmap
下camswap-xmodmap
/usr/bin
在本例中为用户二进制文件somescript
虽然您可以随意命名脚本,但这xinit.rc
似乎不是一个合适的名称,因为它很容易与文件混淆.xinitrc
。因此,我将使用它somescript
作为脚本名称。
您可以修改脚本以接受参数,并使用文件中的参数调用它.xinitrc
以设置适当的键盘布局。这还有一个优点,即可以更轻松地手动调用脚本。
例子:
#!/bin/bash
#keymap directory
somescript_configdir="/etc/somescript"
#command help
if [ "$#" -eq 0 ] || [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
echo -e "keymap helper script"
echo -e "Usage: somescript [OPTION] VARIANT\n"
echo -e "Parameter Desciption\n"
echo "-h, --help show this help text"
echo "-s, --set set keyboard mapping, requires VARIANT"
exit 0
#parse arguments
elif ( [ -z "$2" ] && [ "$1" == "-s" ] ) || ( [ -z "$2" ] && [ "$1" == "--set" ] ); then
echo "Error: setting the keyboard mapping requires VARIANT as argument!"
exit 0
elif [ "$2" == "1" ] && ( [ "$1" == "-s" ] || [ "$1" == "--set" ] ); then
xmodmap "$somescript_configdir/inge-xmodmap"
elif [ "$2" == "2" ] && ( [ "$1" == "-s" ] || [ "$1" == "--set" ] ); then
xmodmap "$somescript_configdir/camswap-xmodmap"
fi
如果/usr/bin/
在您的中,$PATH
您可以使用来更改键盘映射somescript -s 1
,如果您将它放在您的.xinitrc
文件中,它也应该可以工作。