我在make文件中执行以下操作
pushd %dir_name%
我得到以下错误
/bin/sh : pushd : not found
有人可以告诉我为什么出现此错误吗?
我检查了$ PATH变量,它包含/bin,所以我不认为这会引起问题。
最佳答案
pushd
是POSIX指定的Bourne Shell的bash
增强。 pushd
不能容易地实现为命令,因为当前工作目录是该进程的功能,子进程无法更改。 (假设的pushd
命令可能会执行chdir(2)
调用,然后启动一个新的shell,但是……它不是很有用。)pushd
是一个内置的shell,就像cd
一样。
因此,可以将脚本更改为以#!/bin/bash
开头,或者将当前工作目录存储在变量中,进行工作,然后再更改回去。取决于您是否想要在非常简化的系统(例如Debian构建服务器)上运行的Shell脚本,或者是否总是需要bash
很好。