[解決済み] 現在の作業ディレクトリではなく、ファイルの場所に基づく相対パス [重複]。
2022-05-26 10:01:31
質問
与えられた。
some.txt
dir
|-cat.sh
cat.shが内容を持っている状態。
cat ../some.txt
次に
./cat.sh
内部
dir
を実行している間は問題なく動作します。
./dir/cat.sh
と同じレベルで
dir
と同じレベルにあるのにできません。これは、作業ディレクトリが異なるためだと予想しています。簡単にできる方法はありますか?
../some.txt
の位置からの相対パスを
cat.sh
?
どのように解決するのですか?
スクリプトの絶対パスを取得することです。
${BASH_SOURCE[0]}
で取得できます) そして、これを用いて親ディレクトリと
cd
をスクリプトの冒頭でそれに追加します。
#!/bin/bash
parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd "$parent_path"
cat ../some.text
これにより、シェルスクリプトはどこから起動しても動作するようになります。実行するたびに、あたかも
./cat.sh
の内部で
dir
.
このスクリプトは、スクリプトを直接(シンボリックリンクではなく)呼び出した場合のみ動作することに注意してください。)
関連
-
[解決済み] バッシュ Vim.NET」が表示されたらVimを終了させる Warning: 出力先が端末でない"
-
[解決済み] ファイルに書き込むが、ファイルが存在する場合は上書きする
-
[解決済み] bashでjsonファイルを解析するためにjqの出力からダブルクオートを削除する方法は?
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] Bashスクリプトでカレントディレクトリ名(フルパスなし)を取得する
-
[解決済み] 現在作業しているシェルを判断する方法
-
[解決済み] Bashで現在の作業ディレクトリをスクリプトのディレクトリに設定するにはどうすればよいですか?
-
[解決済み] Unixシェルスクリプトは、スクリプトファイルが存在するディレクトリを見つけることができますか?
-
[解決済み] ディレクトリをTarするが,完全な絶対パスはアーカイブに保存しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】シェルスクリプトで整数式が期待されるエラーが発生する
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] Bashで$()と`の違いはあるのでしょうか?重複] [重複
-
[解決済み] sed で二重引用符と単一引用符をエスケープするにはどうしたらいいですか?
-
[解決済み] MacでGNUのreadlink -fの動作を得るにはどうしたらいいですか? [クローズド]です。
-
[解決済み] シェルスクリプトでの連想配列
-
[解決済み] 環境変数を表示/エコーするには?
-
[解決済み] Bashスクリプトのset -o pipefailの意味を教えてください。
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み】OS Xでシェルスクリプトをダブルクリックで実行する方法とは?