为什么我会在意外的令牌换行错误附近获得语法?

时间:2014-09-11 07:10:02

标签: linux bash

我正在尝试使用Ubuntu中的android开发工具包创建一个.bashrc文件。唯一的问题是,当我编辑/添加到bashrc文件时,我得到“意外令牌换行附近的语法错误”。我发布了错误所在的代码,特别是在android SDK主令牌和android NDK令牌之间。谢谢你的帮助

 #Android SDK Home
  export ANDROID_SDK=</Documents/adt-bundle-linux-x86_64-20140702>
 #ANDROID NDK Home
 export NDK=~/android-ndk-r10b
 export PATH=$PATH: $ANDROID_SDK/tools:$ANDROID_SDK/platform-tools

2 个答案:

答案 0 :(得分:1)

我猜你在某个指南中已经读过这样的东西:

  

将以下行添加到.bashrc文件中:

export ANDROID_SDK=<path/to/your/SDK>
# etc.

< >表示占位符,即<replace this bit>。您不需要将路径放在其中,实际上您应该删除它们,因为它们是无效的语法(这会导致您提到的错误)。此外,您应该稍后删除$PATH: $ANDROID_SDK之间的空格:

#Android SDK Home
export ANDROID_SDK="/Documents/adt-bundle-linux-x86_64-20140702"
#ANDROID NDK Home
export NDK="$HOME/android-ndk-r10b"
export PATH="$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools"

更具体地说,错误是由>行末尾的export引起的,因为这意味着&#34;将命令的输出重定向到以下文件描述符&# 34 ;.然后Bash期待文件描述符的名称,但它找到的只是换行符。开头的<也存在问题,因为它意味着&#34;将此文件描述符的内容重定向到命令&#34;,它不会对您的案例执行任何有用的操作。有关详细信息,请参阅this wiki page

顺便说一下,使用双引号没有坏处,事实上,他们受到了鼓励。使用它们意味着在目录名称包含空格的情况下不会发生分词。我已在你的作业中添加了一些内容,并将~更改为$HOME,这样它仍会按照您的要求执行(~将在双引号内按字面解释,而{{ {1}}将扩展到主目录的路径。)

答案 1 :(得分:0)

尖括号无法以这种方式使用。