エイリアスを生成する Bash 関数は無限に呼び出されます。

エイリアスを生成する Bash 関数は無限に呼び出されます。

拡張変数を含む文字列を私の最後に追加するために、次のBash関数を実行しましたbashrc

alias() {
    echo "alias $repo=\"$HOME\"/$repo/$repo.sh" >> "$HOME"/.bashrc
    source "$HOME"/.bashrc 2>/dev/null
}
alias

実行するには、コピーしてBashターミナルに貼り付け(一度表示)、クリックして実行しましたEnter

私が得た結果~/.bashrcはおおよそ上記の文字列の行:

エイリアス $repo=\"$HOME\"/$repo/$repo.sh

最後のコマンド(source /home/user/.bashrc)は無限に実行され続けたので(関数への無限の呼び出しのために仮定)、^Cキーの組み合わせを使用してすぐに中断しました。


Nanoと切り取りを使って何千もの文字列の重複をすべて削除した後、mark-setなぜこれが起こり続けるのか尋ねたいと思います。

ベストアンサー1

という関数を定義し、alias呼び出しに1行を追加してから、シェル(関数がすでに定義されている場所)にソースコードを入力します。別の行を追加する関数を呼び出し、関数を再度呼び出すスクリプトを再インポートします。.bashrcalias ....bashrcaliasすでに毎回一度実行されています、指数関数的な成長につながります。

関数名を変更します。

おすすめ記事