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

时间:2020-08-06 22:57:25

标签: linux bash screenshot alias mv

我正在尝试在.bashrc中为scrot命令添加别名:

alias scrotn="scrot %Y-%m-%d-%s_$wx$h.jpg -e 'mv $f ~/pictures/screenshots/'"

scrot命令在我的终端中有效,但是当我尝试运行scrotn时,我收到以下输出:

mv: missing destination file operand after '/home/lain/pictures/screenshots/'

已经尝试将引号添加到%Y-%m-%d-%s_ $ wx $ h.jpg,切换双引号和单引号,并使用/ home / lain /代替〜/。是的,〜/图片/屏幕截图/存在。我想创建一个别名以将其绑定到我的DWM配置中的PrtSc密钥。 对不起,英语不好。

1 个答案:

答案 0 :(得分:0)

由于别名被定义为双引号字符串(内引号对于shell无关紧要),$f在创建别名时被扩展(假定为空字符串)。解决此问题的推荐方法是使用函数而不是别名。别名被许多人认为是不赞成使用,因为它们的作用比函数少,很难像您所发现的那样调试,并且实际上并没有比函数简单得多。

结果:

scrotn() {
    [your scrot command line]
}
相关问题