繁体   English   中英

Scrot 程序的别名在.bashrc 中不起作用,但在终端中起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM