我有一个程序尝试使用以下命令触发屏幕锁定:
xdg-screensaver lock
xscreensaver -lock
cinnamon-screensaver-command --lock
问题是我正在使用 Arch 并且没有使用上面列出的任何屏幕锁定程序。我需要上述命令之一来触发我的 swaylock 脚本。
是否可以使用带有参数的命令来触发 bash 别名?例如:
alias xscreensaver -lock="cd ~/.config/hypr/scripts && ./lockscreen"
有很多关于使用函数传递参数的帖子,但我无法找到有关如何在触发别名的命令中使用参数的任何信息。我猜这是不可能的,但也许有人有一些替代建议来达到相同的效果。
“程序”(如“非脚本”)通常不解析用户的 RC 文件。因此,如果您的“程序”不是可以轻松修改的脚本,那么它很可能会检查
PATH
以查找这些可执行文件的路径,或者检查特定路径中是否存在这些可执行文件。如果您的程序通过读取
PATH
来查找这些可执行文件的路径,则解决此问题的一种方法是:PATH
包括/home/<your_username>/config/hypr/scripts
至于具体如何处理第 2 点:这取决于您的程序当前的调用方式。我可以根据您的情况更具体地说明这一点,但执行此操作的一般方法是,运行而不是
program
运行但这可能适用也可能不适用于您的情况,具体取决于您的程序的调用方式,并且再次取决于您的程序是否读取
PATH
以查找这些可执行文件的路径。这种其他方法更像是一种 hack,只有在上述解决方案不适用或者您的程序无法读取
PATH
以查找这些可执行文件的路径时才应使用。请参阅下面的警告。另一种方法是,因为您不应该在系统上安装任何这些可执行文件,所以:
xdg-screensaver
;/usr/bin/
;root:root
/0755
;明显的警告是:只要其他程序不尝试依赖
xdg-screensaver
某些东西就可以。从本质上讲,这可能会破坏其他东西,导致突然已经安装的程序(或者您将来要安装的程序)可能会找到xdg-screensaver
可用的可执行文件并运行它。因为我猜您的脚本不是 的完整替代品xdg-screensaver
,所以这可能会破坏尝试使用它的程序。因此,这又是一种 hack,应该谨慎使用。
首先说明一下:我发现最好给这个函数一个新名称,与现有命令不同。
现在的功能: