【问题标题】:Linux powershell command from terminal returns command not found来自终端的 Linux powershell 命令返回找不到命令
【发布时间】:2017-05-18 22:16:06
【问题描述】:

我有一个运行带有 Powershell 的 Ubuntu Server 16.04 的 Linux 机器,如果我从 Linux 终端运行:

sudo powershell (Invoke-Webrequest http://ipinfo.io/json | ConvertFrom-Json).ip 

我收到一条错误消息,说它的格式不正确,最后应该是 ')'。如果我删除 () 并尝试从 JSON 转换它会抛出找不到命令 ConvertFrom-Json

也就是说,如果我真的进入 powershell 并运行原始命令,它就会完美运行。

任何帮助将不胜感激。

【问题讨论】:

    标签: linux powershell


    【解决方案1】:

    我发现需要像这样包装命令

    sudo powershell '(Invoke-Webrequest http://ipinfo.io/json | ConvertFrom-Json).ip'
    

    感谢您的帮助!

    【讨论】:

      【解决方案2】:

      我还没有在 Linux 上使用 PowerShell(还),但在 Windows 上你需要

      powershell -Command { (Invoke-WebRequest http://ipinfo.io/json | ConvertFrom-JSON).ip }
      

      【讨论】:

      • 感谢 Jeff,我刚刚尝试过,但在意外标记 '(' 附近仍然出现 -Bash 语法错误
      • 好吧,我不会说 bash,但我的下一个建议是做任何 bash 要求的事情来逃避括号 - 也许是 \(\)?您可能还需要转义 |
      猜你喜欢
      • 2014-06-12
      • 2013-10-30
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2011-07-16
      相关资源
      最近更新 更多