
linuxで、シェルスクリプトを作成しているのですが、
あるページを参考にしていたところ、
"${0%/*}" 内容がでてきました。(参考ページは、cd "${0%/*}" と記述されていました。)
確認のために、下記ファイルを作成し、
echo "${0%/*}" でどういった内容になるのか確認してみました。
■シェルスクリプトの内容(ファイル:kakunin.sh)
#!/bin/sh
echo "${0%/*}"
(1)shで、シェルスクリプト実行
# sh kakunin.sh
kakunin.sh ←結果
(2).(ドット)により実行。
# ./kakunin.sh
. ←結果(. ドット)
結果が異なっています。
"${0%/*}"は何を意味しているのでしょうか。
なぜ、(1)と(2)で、実行結果が異なるのでしょうか。
御教示お願いします。
No.3ベストアンサー
- 回答日時:
man bash より。
${parameter%word}
${parameter%%word}
パターンに後方一致した部分を取り除く。 word が展開され、パス名展開の場合と同じようなパターンを作ります。 このパターンが parameter を展開した値の末尾の部分とマッチする場合、展開結果は parameter を展開した値から最短一致パターン (``%'' の場合) または最長一致パターン (``%%'' の場合) を取り除いたものになります。 parameter が @ または * である場合、 パターンを削除する操作は全ての位置パラメータに順番に適用され、 展開結果はリストとして得られます。 parameter が @ または * が添字になっている配列変数である場合、 パターンを削除する操作は配列の全ての要素に順番に適用され、 展開結果はリストとして得られます。
「/ があればそれとそれ以降の文字を削除する」 という意味です。
/が複数ある場合は最後の / 以降を削除。
man bashに内容が記述されていることを確認できました。
>「/ があればそれとそれ以降の文字を削除する」 という意味です。
そういうことだったのですが。見るところまで教えて頂きありがとうございました。
No.2
- 回答日時:
$0を%/*で処理した結果を表示してるのでは?
echo $0
>$0を%/*で処理した結果を表示してるのでは?
情報ありがとうございます。
頂いた情報を元に調べてみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
ubuntu(linux)のシャットダウン...
-
VirtualBox 6.1 → 7.1 でUbuntu...
-
ssl_request_logの必要性について
-
Lubuntuでとにかく軽量のバージ...
-
Ubuntuで数字だけのユーザーア...
-
bashでシングルクォート内の変...
-
「トゥ]の出し方
-
ubuntuのシャットダウンが進ま...
-
WinSCPでLinux(CentOS6.10)に...
-
Linux のシェルスクリプトの強...
-
Windowsのローカルディレクトリ...
-
ubuntuで デイスク/deb/loopと...
-
Fedoraのupgradeで、libruby.so...
-
tarで纏める際に、複数場外した...
-
Linux(fedora30)が立ち上がらく...
-
linuxサーバーのキャッシュをク...
-
私のパソコンでVirtualBoxは使...
-
Lubuntuのデスクトップのアイコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
インストールできないですどう...
-
ubuntu(linux)のシャットダウン...
-
Linuxでブートディスクの交換後...
-
bashでシングルクォート内の変...
-
WinSCPでLinux(CentOS6.10)に...
-
ubuntuのシャットダウンが進ま...
-
Linux のシェルスクリプトの強...
-
CentOSが起動時にフリーズ
-
ubuntuで デイスク/deb/loopと...
-
Ubuntu on Xorgのログインについて
-
「トゥ]の出し方
-
Windowsのローカルディレクトリ...
-
apacheでリバースプロキシを設...
-
ubuntu 24 へのCanon 複合機ス...
-
ログにserver reached MaxReque...
-
WineのRufusでデバイスを検知す...
-
ssl_request_logの必要性について
-
「/var/log」内のログの削除の...
おすすめ情報