我正在为 linux 终端编写一个 shell 脚本。我希望能够在提示下输入变量名称。例如:
测试.sh:
test="Monkey in the middle..."
read -p "Enter input: " input
echo $input
Run Code Online (Sandbox Code Playgroud)
输出:
Enter input: $test
$test
Run Code Online (Sandbox Code Playgroud)
我希望能够read -p
在脚本的提示部分输入“$test”,并在最后让脚本回显“中间的猴子...”,而不是像现在这样回显“$test”。
我该怎么做?
更新:
使用此处和此线程中提供给我的答案(非常感谢贡献者和评论员!),我设法将这条线拼凑起来,这对我来说非常有效:
newvariable="$(eval echo $input)"
Run Code Online (Sandbox Code Playgroud)
请注意,我不止一次被警告说使用 eval 可能会带来安全风险。如果您选择此解决方案,请记住这一点。
我的笔记本电脑带有 PrintScreen 键(在 KB 的右侧,在 Alt_R 和 Control_R 之间)。在 Xorg 中,我一直在使用 xmodmap 用菜单键交换打印屏幕:
/usr/bin/xmodmap -e "keycode 107 = Menu"
问题是,由于安全限制,xmodmap、xdotool 和其他任何依赖于拦截和注入击键的东西在 Wayland 上都不再起作用。gnome-tweak-tool 有(开箱即用)一些漂亮的基于 xkb 的修改,允许交换一些特定的键(如带转义的大写锁定),但它没有我正在寻找的修改。
我想知道是否有办法通过修改键盘布局文件来将 printscr 交换为菜单键?它们是文本文件还是我必须重新编译的二进制文件?
/usr/bin 中有 setkeycodes 和 getkeycodes,有谁知道这些命令是做什么的?
我刚刚在 freedesktop.org 上阅读 David Z 为 pkexec 编写的参考手册:
https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
和
https://www.freedesktop.org/software/polkit/docs/latest/pkexec.1.html
手册说,使用 auth_admin_keep 选项只会将您的密码保留 5 到 15 分钟,如果我们想设置自定义超时,我们可以编写自定义规则。
有人知道我如何编写超时的自定义规则吗?我尝试按照手册进行操作,但我不是编码员,我无法理解 Syntax,也没有提到与超时相关的 Syntax。