特定のフォルダでコマンドを実行する

特定のフォルダでコマンドを実行する

ファイルがある同じディレクトリで実行している場合にのみ機能するスクリーンショットツールがあります。今すぐ印刷を押すショートカットを作成したいと思います。コマンドは次のとおりです。

bash -c '~/Documents/KneckPrint | xsel --clipboard'   

今述べたように、KneckPrintフォルダで実行しないと機能しません。

頑張った

bash -c 'cd ~/Documents/KneckPrint | KneckPrint | xsel --clipboard'    

しかし、それはうまくいかないので、私は手がかりがありません。

E:bash -c '…'それ以外の場合はxselが実行されないため、これが必要なようです。

答え1

Julie Pelletierは(コメントで)次のように提案しました。

bash -c 'cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard'

より短いバリエーションは次のとおりです。

( cd ~/Documents/KneckPrint && KneckPrint | xsel --clipboard )

これ(またはJulieの提案)をシェル関数に入れることができます:

function knecksel {
  ( cd "$HOME/Documents/KneckPrint" && KneckPrint | xsel --clipboard )
}

サブシェル((...))は、コマンドの完了後にディレクトリが変更されたままになるのを防ぎますxsel

答え2

rcファイルをすぐに作成できます。 bash --rcfile <(cd directory) -c 'command line'

関連情報