【问题标题】:Command found at the command line but not in script在命令行中找到但在脚本中没有的命令
【发布时间】:2023-03-22 17:29:01
【问题描述】:

我正在尝试使用 mac 上的脚本创建一个新的 项目。为此,我遵循了以下步骤:

  1. 在我的.bash_profile 中添加工具和平台工具的PATH
  2. 验证android 命令在shell 中是否有效。
  3. 编写一个脚本来创建一个新项目。

这是我写的脚本:

NAME=$1
PATH=$2
PACKAGE=$3

echo $1
echo $2
echo $3

function create_new_android_project()
{
android create project -n "$NAME" -t 7 -p "$PATH" -k "$PACKAGE" -a MainActivity
}


create_new_android_project
echo
echo "******** Complete!!!"

android 命令在 shell 中运行。但是当我运行脚本时 sh script.sh project_name project_path package_name 它放弃了一个错误说android: command not found

【问题讨论】:

    标签: android android bash shell android-sdk-tools


    【解决方案1】:

    PATH 变量对 shell 具有特殊意义。当您没有为它们提供完整路径时,shell 期望它包含一个以冒号分隔的目录列表,它可以在其中查找程序。

    要解决您的问题,请在您的程序中使用除 PATH 之外的其他名称。

    作为一般建议,我邀请您使用更严格的规范引用参数并避免使用echo 命令:

    1. 变量名不应出现在双引号之间的原因很少。因此,除非你想实现一些特殊的东西,你应该总是使用双引号来控制变量扩展。

    2. 更喜欢 printf 而不是 echo,因为它更易于使用、更可靠且更便携(也是明显的赢家)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-10
      • 2018-03-25
      • 1970-01-01
      • 2010-11-13
      • 2014-01-30
      • 1970-01-01
      • 2017-04-26
      • 2019-06-11
      相关资源
      最近更新 更多