![アプリケーションはディレクトリ内にない場合に失敗しますか?](https://rvso.com/image/50565/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AF%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%86%85%E3%81%AB%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
音楽プレーヤーの DeaDBeeF を実行しようとしています。そのディレクトリにいる場合は正常に動作しますが、他の場所にいる場合は「出力プラグインが見つかりませんでした」というメッセージが表示されます。現在の作業ディレクトリではなく、独自のディレクトリを検索する方法はありますか?
答え1
そのプログラムにバグがあるようです。ソース コードを変更せずに修正することはできないかもしれませんが、たとえばシェル スクリプトを使用すると簡単に回避できます。
#!/bin/sh
cd /path/to/program
exec ./program "$@"
これを に保存し/usr/local/bin
、適切な権限を設定します。
chmod 755 /usr/local/bin/myscript
chown root:root /usr/local/bin/myscript
プログラム実行ファイルの代わりにこのスクリプトを起動します。
この方法の制限は、現在のディレクトリ内のファイルを、名前を入力するだけでは再生できなくなることです。 の代わりに、 (現在のディレクトリの名前に または空白が含まれている場合はにします)deadbeef myfile.mp3
を使用できます。deadbeef $PWD/myfile.mp3
deadbeef "$PWD/myfile.mp3"
\[?*