我有一个屏幕截图工具,仅当我从文件所在的同一目录启动它时才起作用。现在我想创建一个只需按打印的快捷方式,命令是:
bash -c '~/Documents/KneckPrint | xsel --clipboard'
现在正如我所说,如果我不从 KneckPrint 文件夹执行它,这将不起作用。
我试过了
bash -c 'cd ~/Documents/KneckPrint | KneckPrint | xsel --clipboard'
但这不起作用,所以我一无所知。
E:这bash -c '…'
似乎是必要的,因为否则 xsel 不会被执行。
答案1
朱莉·佩尔蒂埃建议(在评论中):
bash -c 'cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard'
一个较短的变体是
( cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard )
这(或朱莉的建议)可以放入 shell 函数中:
function knecksel {
( cd "$HOME/Documents/KneckPrint" && KneckPrint | xsel --clipboard )
}
子 shell ( (...)
) 可以防止命令完成后目录保持更改状态xsel
。
答案2
您可以即时创建 rc 文件:
bash --rcfile <(cd directory) -c 'command line'