【问题标题】:Convert bash into powershell script?将bash转换为powershell脚本?
【发布时间】:2019-02-26 14:59:32
【问题描述】:

我需要转换脚本:

s#!/bin/bash

if [ $# -ne 1 ]; then
        echo "Usage:"
        echo ${0##*/}" <port>"
        echo
        exit 1
fi

r=`ss -ln6tp | grep -c ":::$1"`
 if [ $r -ne 1 ]; then
        echo "Agent on port $1 is not listening."
        exit_code=2
 else
        echo "Agent listening on port $1"
        exit_code=0
 fi

exit $exit_code

我完全没有使用 bash 的经验,而且我的 powershell 知识很基础。退出代码是我这里的主要问题。请问有什么想法吗?

【问题讨论】:

  • 只有$exit_code 的行将输出退出代码。
  • 请编辑问题并解释 bash 脚本应该做什么。您是在 Windows 或某些 *nix 上运行脚本吗? Powershell 和 Windows 的工作方式与 *nix 大不相同,因此重新实现可能大不相同。
  • $exit_code = 0 为 PowerShell 中的变量 $exit_code 赋值。 exit $exit_code 在 PowerShell 和 bash 中是相同的。现在请去找 bash 和 PowerShell 教程。 SO 既不是免费翻译服务,也不是您熟悉所用语言的替代品。
  • 我假设您希望从在 linux 上运行这个脚本到在 Windows 上运行这个脚本,这可能意味着这个脚本所期望的各种工具(ss,grep)将不被安装。您能否告诉我们您希望脚本做什么?直接编写功能而不是尝试翻译它会更容易。

标签: bash powershell


【解决方案1】:

上述 SO 问题应该有助于解决您的问题。他们将帮助您了解 bash 脚本的作用以及采用它。 exit_code 定义了两种语言的脚本的返回。如果您想使用相同的逻辑将脚本完全转换为 PowerShell,您将很难真正替换脚本的实际功能。如果您更改逻辑,您可能会用一行替换它。

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多