私はmakeファイル内で次のことを行っています
pushd %dir_name%
そして次のエラーが発生します
/bin/sh : pushd : not found
このエラーが表示される理由を誰か教えていただけませんか? $PATH 変数を確認したところ、/bin が含まれているので、それが問題の原因ではないと思います。
ベストアンサー1
pushd
bash
POSIX仕様のBourne Shellの拡張版です。pushd
現在の作業ディレクトリは子プロセスによって変更できないプロセスの機能であるため、コマンドとして簡単に実装することはできません。(仮想pushd
コマンドかもしれない呼び出しを行っchdir(2)
てから新しいシェルを起動しますが、あまり使い物になりません。)pushd
は、 と同様に、シェルの組み込みコマンドですcd
。
したがって、スクリプトを最初に変更するか#!/bin/bash
、現在の作業ディレクトリを変数に格納して作業を行い、その後元に戻します。非常に縮小されたシステム (Debian ビルド サーバーなど) で動作するシェル スクリプトが必要な場合、または常に を要求しても問題ない場合によって異なりますbash
。