OS XでJavaプログラムを起動するための簡単なbashスクリプトを作成したいと思います。ファイル名、ファイルパス、および直後の作業フォルダにはすべてスペースが含まれています。私はこれを行うと:OS X bash:dirname
#!/bin/sh
cd `dirname $0`
は、私はまた、別の場所のすべての種類の引用符を入れて試してみました
usage: dirname path
を取得します。最も精巧な例があります。
cd "`dirname \"$0\"`"
何も機能していません。私は、エラーメッセージか、そのぎこちない "usage:dirname path"メッセージを受け取ります。
他にも有効な方法はありますか?
編集:これはそれだけで私のボックスでなければならないので、誰もが、私にとっては問題ではないようです。私はこの特定の問題のために働く唯一の解決策であるため、私自身の投稿を受け入れるつもりです。しかし、私は間違いなく他の人のために働いているようで、本当に皆の助けに感謝するソリューションをアップボーニングしています。ここに私の作品
cd "$(dirname "$0")"
:何について
'echo $ 0'は何の収穫ですか? dirnameは$ 0の値に固有の何かに問題があるかもしれません。別のディレクトリのスクリプトでこれを実行しようとしましたか? – fbrereto
2つ目の例は、6つのレベルのディレクトリで、他のすべての祖先がその名前に少なくとも1つのスペースを持つ場所で動作します。 – Chuck
dirnameのマンページを見てみませんか? –