Git bash 不会解析 "sam" 命令

Git bash will not resolve "sam" command

我用的是最新的Win10。安装 AWS-SAM-CLI 并测试安装后:

sam --version

我收到消息

bash: sam: command not found

然而,当我使用 Powershell、cmd 或 ConEmu 时,它们都可以解析“sam”。

路径是“e/Program Files/Amazon/AWSSAMCLI/bin” 但是像“yarn”这样的其他命令也可以正常工作,它也安装在“e/Program Files/...”

有什么想法吗?谢谢

sam.cmd --version

SAM CLI 的 windows 版本没有直接可执行的二进制文件。它是一个 .cmd 脚本,将您的选项回显到 python 可执行文件。

@rem
@echo off

setlocal

"%~dp0/../runtime/python.exe" -m samcli %*

我还没有想出如何让它与

一起工作
sam --version

我的假设是 powershell 和命令提示符将 .cmd 视为不需要扩展名的可执行文件,而 git bash 则不需要。

这是我如何使用别名让它工作的。 alias sam="/c/Program\ Files/Amazon/AWSSAMCLI/bin/sam.cmd"

虽然别名在直接从命令行调用 sam 时起作用,但它在我使用的脚本中不起作用。

为了解决这两个问题,我发现我需要添加一个 shell 与已安装的 .cmd 脚本等效的脚本,名为 sam,通常位于与它相同的文件夹中 C:\Program Files\Amazon\AWSSAMCLI\bin:

#!/bin/sh
basedir=$(dirname "$(echo "[=10=]" | sed -e 's,\,/,g')")

case `uname` in
    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac

"$basedir/../runtime/python.exe" -m samcli "$@"
ret=$?
exit $ret
$ vi ~/.bashrc  # or favorite editor

添加:

alias sam='sam.cmd'

然后:

$ source ./.bashrc # can use '. ./.bashrc