[英]Alias to Scrot program doesn't work in .bashrc but works in terminal
我正在尝试使用以下命令在.bashrc 中为 scrot 命令起别名:
alias scrotn="scrot %Y-%m-%d-%s_$wx$h.jpg -e 'mv $f ~/pictures/screenshots/'"
scrot 命令在我的终端中运行,但是当我尝试运行 scrotn 时,我收到了这个 output:
mv: missing destination file operand after '/home/lain/pictures/screenshots/'
已经尝试在 %Y-%m-%d-%s_$wx$h.jpg 中添加引号,切换双引号和单引号并使用 /home/lain/ 而不是 ~/。 是的,~/pictures/screenshots/ 存在。 我想创建一个别名以将其绑定到我的 DWM 配置中的 PrtSc 键。 抱歉英语不好。
由于别名被定义为双引号字符串(内引号对 shell 而言无关紧要) $f
在创建别名时被扩展(可能是空字符串)。 解决此问题的推荐方法是使用 function 而不是别名。 许多人认为别名已弃用,因为它们可以做的比函数少,正如您所发现的那样难以调试,并且实际上并不比函数简单得多。
结果:
scrotn() {
[your scrot command line]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.