bashスクリプトへのシンボリックリンクを起動しようとすると無限ループ

monoidog

以下を使用してシンボリックリンクを作成しようとしています。

$ ln -s path/to/foo.sh ~/.local/bin/bar

foo.shが実行されるパスには、という名前の別のファイルがありますfoo

次のbashスクリプトは、ターミナルから直接起動すると正常に実行されます(つまり、$ ./foo.sh)が、シンボリックリンクを使用するbarと、エラーがスローされます。

# foo.sh

  1 #!/usr/bin/env bash
  2  appname=`basename $0 | sed s,\.sh$,,`
  3 
  4  dirname=`dirname $0`
  5  tmp="${dirname#?}"
  6 
  7  if [ "${dirname%$tmp}" != "/" ]; then
  8  dirname=$PWD/$dirname
  9  fi
 10  LD_LIBRARY_PATH=$dirname
 11  export LD_LIBRARY_PATH
 12  $dirname/$appname $*

起動しようとすると、シンボリックリンクから上記のスクリプトで次のエラーが発生する理由がわかりませんbar

bash:警告:シェルレベル(1000)が高すぎ、1にリセットされます

bac0n

ファイルを処理する前にシンボリックリンクを解決してください。

foo.sh

#!/bin/bash

# Mark variable for export.
declare -xi LVL

# Resolve absolute pathname.
filename=$(realpath "$0")

# Strip .sh suffix from file and check for exec bit.
((LVL++ < 1)) && [[ -x "${filename%.sh}" ]] || exit 1

export LD_LIBRARY_PATH="${filename%/*}"

# Run it!
"${filename%.sh}" "$@"

foo

#!/bin/bash
echo "$@"

これで、シンボリックリンクを作成できます。

$ ln -s /path/to/foo.sh bar

シンボリックリンクの名前に関係なく、実行されるのはファイルfooです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

起動時およびRaspberryPiのバックグラウンドで無限のwhileループを使用してbashスクリプトを実行する

分類Dev

stdoutをリダイレクトしようとすると無限ループ

分類Dev

ルートとして無限ループを使用してスクリプトを起動します

分類Dev

ActiveXコンボボックスをオートコンプリートしようとするとExcelがクラッシュする

分類Dev

シミュレーター (RN 0.45) にデプロイしようとすると、node_modules エラーの無効なシンボリックリンク

分類Dev

ターミナルからデスクトップでアプリケーションを起動するときにログを無効にする方法

分類Dev

ローカルマシンへのアクセスを許可し、同じローカルネットワーク内の他のマシンとリソースへのアクセスを制限するにはどうすればよいですか?

分類Dev

起動時にフルスクリーンモードでアプリケーションを起動しようとしています

分類Dev

起動時にフルスクリーンモードでアプリケーションを起動しようとしています

分類Dev

エイリアスを「見る」ことができないbashスクリプトへのシンボリックリンク

分類Dev

DEの起動時に実行されるようにbashスクリプトをインストールするタスクを(インストーラースクリプトを介して)作成するにはどうすればよいですか?

分類Dev

シェル スクリプトから起動したときに redis サーバーが Ctrl+C を無視するようにする

分類Dev

ボタンがクリックされたときとアプリケーションが再び起動したときに、2 つのアクティビティ全体をスワップし、そのスワップの変更を表示する方法

分類Dev

ファイルリストを使用してファイルからシンボリックリンクを自動的に作成するBashスクリプト

分類Dev

Windowsシンボリックリンクを介してアプリケーションを起動するにはどうすればよいですか

分類Dev

AJAXリクエストを実行するアクションをディスパッチするときの無限ループ-ReactJS、Redux、Redux-saga

分類Dev

クリップボードを引数として.desktopエントリからmpvを起動する

分類Dev

プロット用のカフリンクス:カフリンクス設定オプションを設定すると起動します

分類Dev

Androidアプリへのディープリンクを有効にしようとすると、テストインテントがアクティビティを起動できません

分類Dev

どのようにモーダルと2ページ目へのリダイレクトあなたが活性化したこと、最初のページにあるボタンをクリックすることにより、ブートストラップ4モーダルをアクティブにするには?

分類Dev

ボタンをクリックすると、テキストボックスをループしますjavascript

分類Dev

ターゲットとシンボリック リンクを交換するスクリプトのヘルプ

分類Dev

ディレクトリを監視し、新しく作成されたすべてのサブディレクトリとそのファイルをシンボリックリンクするための Bash スクリプト

分類Dev

起動時にイオンロゴと私のスプラッシュスクリーンを表示するスプラッシュスクリーン

分類Dev

リンクリストを反復処理するときの無限ループ

分類Dev

リンクリストPython3を反復処理するときの無限ループ

分類Dev

引数を指定してシフトすると、このbashスクリプトで無限ループが発生するのはなぜですか?

分類Dev

CLIボタンをクリックしたときにDockerDesktop for macOSが起動するターミナルアプリケーションを変更するにはどうすればよいですか?

分類Dev

bashスクリプト内の名前に特殊文字が含まれるファイルへのシンボリックリンクをエコーまたは作成することはできません

Related 関連記事

  1. 1

    起動時およびRaspberryPiのバックグラウンドで無限のwhileループを使用してbashスクリプトを実行する

  2. 2

    stdoutをリダイレクトしようとすると無限ループ

  3. 3

    ルートとして無限ループを使用してスクリプトを起動します

  4. 4

    ActiveXコンボボックスをオートコンプリートしようとするとExcelがクラッシュする

  5. 5

    シミュレーター (RN 0.45) にデプロイしようとすると、node_modules エラーの無効なシンボリックリンク

  6. 6

    ターミナルからデスクトップでアプリケーションを起動するときにログを無効にする方法

  7. 7

    ローカルマシンへのアクセスを許可し、同じローカルネットワーク内の他のマシンとリソースへのアクセスを制限するにはどうすればよいですか?

  8. 8

    起動時にフルスクリーンモードでアプリケーションを起動しようとしています

  9. 9

    起動時にフルスクリーンモードでアプリケーションを起動しようとしています

  10. 10

    エイリアスを「見る」ことができないbashスクリプトへのシンボリックリンク

  11. 11

    DEの起動時に実行されるようにbashスクリプトをインストールするタスクを(インストーラースクリプトを介して)作成するにはどうすればよいですか?

  12. 12

    シェル スクリプトから起動したときに redis サーバーが Ctrl+C を無視するようにする

  13. 13

    ボタンがクリックされたときとアプリケーションが再び起動したときに、2 つのアクティビティ全体をスワップし、そのスワップの変更を表示する方法

  14. 14

    ファイルリストを使用してファイルからシンボリックリンクを自動的に作成するBashスクリプト

  15. 15

    Windowsシンボリックリンクを介してアプリケーションを起動するにはどうすればよいですか

  16. 16

    AJAXリクエストを実行するアクションをディスパッチするときの無限ループ-ReactJS、Redux、Redux-saga

  17. 17

    クリップボードを引数として.desktopエントリからmpvを起動する

  18. 18

    プロット用のカフリンクス:カフリンクス設定オプションを設定すると起動します

  19. 19

    Androidアプリへのディープリンクを有効にしようとすると、テストインテントがアクティビティを起動できません

  20. 20

    どのようにモーダルと2ページ目へのリダイレクトあなたが活性化したこと、最初のページにあるボタンをクリックすることにより、ブートストラップ4モーダルをアクティブにするには?

  21. 21

    ボタンをクリックすると、テキストボックスをループしますjavascript

  22. 22

    ターゲットとシンボリック リンクを交換するスクリプトのヘルプ

  23. 23

    ディレクトリを監視し、新しく作成されたすべてのサブディレクトリとそのファイルをシンボリックリンクするための Bash スクリプト

  24. 24

    起動時にイオンロゴと私のスプラッシュスクリーンを表示するスプラッシュスクリーン

  25. 25

    リンクリストを反復処理するときの無限ループ

  26. 26

    リンクリストPython3を反復処理するときの無限ループ

  27. 27

    引数を指定してシフトすると、このbashスクリプトで無限ループが発生するのはなぜですか?

  28. 28

    CLIボタンをクリックしたときにDockerDesktop for macOSが起動するターミナルアプリケーションを変更するにはどうすればよいですか?

  29. 29

    bashスクリプト内の名前に特殊文字が含まれるファイルへのシンボリックリンクをエコーまたは作成することはできません

ホットタグ

アーカイブ