2017-08-11 61 views
0

我正在嘗試npm在Ubuntu 16.04中安裝一個軟件包。我收到以下錯誤信息:如何更改npm安裝的shell

npm install 

... 

> [email protected] bower-install /home/kent/Documents/padlock 
> pushd app && bower install && popd app 

sh: 1: pushd: not found 

我的研究

/bin/sh: pushd: not found,我的問題顯然是NPM安裝正在嘗試與SH不是bash的執行PUSHD。

然而,我的默認的shell是bash的已經

$ env | grep SHELL 
SHELL=/bin/bash 
$ echo $SHELL 
/bin/bash 
$ echo $0 
bash 

,我不知道我需要改變。我也嘗試在執行pushd應用程序之前添加SHELL =/bin/bash,但是我也沒有運氣。

+0

嘗試使用'ls -al/bin/bash'來查看'bash'是否鏈接到其他shell。 – CWLiu

+0

ls -al/bin/bash -rwxr-xr-x .../bin/bash – kshikama

回答

0

NPM-腳本運行使用sh

腳本是通過將線作爲腳本參數運行SH

https://docs.npmjs.com/misc/scripts#exiting

如果你想使用bash的腳本製作劇本

bash -c 'pushd app && bower install && popd'

+0

有趣......掛鎖開發人員如何認爲pushd只會工作呢? – kshikama

+0

'sh'在某些系統上是bash,但在基於debian的系統上它是破折號 – Robo

+0

我明白了;謝謝 :) – kshikama