在命令行中找到命令但在脚本中找不到

时间:2014-04-23 09:17:42

标签: android bash shell android-sdk-tools

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

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

    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

1 个答案:

答案 0 :(得分:1)

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

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

作为一般性建议,我邀请您使用更强的学科引用参数并避免使用echo命令:

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

  2. 首选printf超过echo,因为它更易于使用,更可靠,更便携(也是明显的赢家)。