【问题标题】:Unable to 'cd' using my bash script无法使用我的 bash 脚本“cd”
【发布时间】:2017-01-03 12:04:46
【问题描述】:

我正在运行一个安装脚本,该脚本做的最后一件事是它在我的testrepo 目录中运行npm install

这是我的文件夹的样子:

testrepo 是一个节点项目,包含package.json 文件。

现在,作为我的install.sh 脚​​本的一部分,我尝试执行以下操作:

 echo "Installing test repo node packages and dependencies...." &&
 cd testrepo/ && 
 npm install &&
 echo "Finished installing"

但是,这似乎并没有运行npm install中的testrepo,并且仍然说已经安装完毕。

有什么好的方法可以解决这个问题?

注意:install.sh 脚本内部有很多任务要完成。

【问题讨论】:

  • 请分享您在命令行中遇到的错误
  • &&s 是怎么回事?!
  • 为什么你认为“这似乎没有运行npm install”?
  • @Venkatraman 我不同意。 && 在脚本中也可以大量使用
  • @emisqwe 您能否尝试删除所有 &&s,在脚本顶部(但在 shebang 下方)添加 set -ex 并向我们展示完整的脚本,您使用的确切命令运行它以及完整的输出?

标签: node.js bash shell npm


【解决方案1】:

使用 && 创建一个表达式。这就是它出错的地方。

举个例子,如果我的当前目录是/tmp,我执行

(cd .. ; pwd ) && pwd

你可以看到会发生什么:

/
/tmp

【讨论】:

  • 怕是去掉&&后问题依然存在
  • 在没有&&s 的脚本中,尝试将pwd 放在npm install 之前和之后(单独一行)。这将向您展示正在发生的事情。
猜你喜欢
  • 2015-01-30
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 2018-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多