【问题标题】:Mkdir: missing operand on ubuntu 14Mkdir:ubuntu 14 上缺少操作数
【发布时间】:2017-06-16 08:15:11
【问题描述】:

在 ubuntu 14 上创建目录时,shell 会吐出这个 Mkdir: missing operand 有人知道女巫在说什么吗?

Mkdir -p && chown -R ubuntu: && chmod + rw
Mkdir: missing operand

capistrano 脚本

mkdir -p #{pids_path} && chown -R #{user}:#{group} #{pids_path} && chmod +rw #{pids_path}
mkdir -p #{sockets_path} && chown -R #{user}:#{group} #{sockets_path} && chmod +rw #{sockets_path

【问题讨论】:

  • 你似乎在使用#,而你应该使用$
  • 这是一个 capistrano 脚本
  • 做一个shell执行
  • #{...} 是用于在字符串中插入表达式的 Ruby 语法。您的脚本看起来像原始的 shell 代码。
  • @chepner,是的,是一个 capistrano 部署脚本,输出一个原始的 shell 代码!

标签: ruby-on-rails ruby bash shell ubuntu


【解决方案1】:

我在猜测,但据我所知,pids_path 中的值为零。你的 capistrano 脚本有这个:

mkdir -p #{pids_path} && chown -R #{user}:#{group} #{pids_path} && chmod +rw #{pids_path}

如果它变成这样:

Mkdir -p && chown -R ubuntu: && chmod + rw

然后您可以看到 shell 脚本期望在 mkdir -p 之后和 && 之前出现一些东西,但实际上什么都没有。

顺便说一句,这意味着你告诉你的 shell “创建一个名为 nothing 的目录”,这就是它失败的原因

【讨论】:

  • 该组似乎也是空的。
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2018-11-16
  • 1970-01-01
相关资源
最近更新 更多