/bin/sh: pushd: 見つかりません 質問する

/bin/sh: pushd: 見つかりません 質問する

私はmakeファイル内で次のことを行っています

pushd %dir_name%

そして次のエラーが発生します

/bin/sh : pushd : not found

このエラーが表示される理由を誰か教えていただけませんか? $PATH 変数を確認したところ、/bin が含まれているので、それが問題の原因ではないと思います。

ベストアンサー1

pushdbashPOSIX仕様のBourne Shellの拡張版です。pushd現在の作業ディレクトリは子プロセスによって変更できないプロセスの機能であるため、コマンドとして簡単に実装することはできません。(仮想pushdコマンドかもしれない呼び出しを行っchdir(2)てから新しいシェルを起動しますが、あまり使い物になりません。)pushdは、 と同様に、シェルの組み込みコマンドですcd

したがって、スクリプトを最初に変更するか#!/bin/bash、現在の作業ディレクトリを変数に格納して作業を行い、その後元に戻します。非常に縮小されたシステム (Debian ビルド サーバーなど) で動作するシェル スクリプトが必要な場合、または常に を要求しても問題ない場合によって異なりますbash

おすすめ記事