我试图定义一个字符串X =“或者'这个'那个'”但GNU make不会接受它

时间:2017-03-03 23:12:30

标签: makefile gnu-make

我正在尝试为GNU make编写一个Makefile。我无法弄清楚这里的问题是什么:

public class LinkedListStack
{
   private LinkedList node;

   public LinkedListStack()
   {
   node = new LinkedList();
   }
   public boolean isEmpty()
   {
      return node.first == null;
   }
   public void push(String data)
   {
   node.insertFirst(data);
   }
   public String pop()
   {
     return node.deleteFirst();
   }
   public void displayStack()
   {
      System.out.println("Reversed order: ");
      node.displayNode();
   }


}

我收到以下错误消息

import java.util.Scanner;
import java.util.Stack;
public class LinkedStackDemo
{
   public static void main(String []args)
   {
      LinkedListStack s = new LinkedListStack();
      LinkedList s1 = new LinkedList();
      String input;
      Scanner scan = new Scanner(System.in);
      System.out.print("Please enter a word: ");
      input = scan.nextLine();

      s.push(input);



      //String reverse = new    StringBuffer(s.push(input)).reverse().toString();
      //System.out.println(reverse);



     for (int i = 1; i <= input.length(); i++)
{
    while(i<=input.length())
        {


         String c = input.substring(i,i-1);
        s.push(c);

        }
       //System.out.println("The stack is:\n"+ s);
       s.displayStack();
}



}


   }
  1. 为什么尝试在shell中运行此字符串的一部分?

  2. 如何定义变量以准确包含whatIWant的内容?

1 个答案:

答案 0 :(得分:1)

可能值得详细了解扩展。

定义变量时, 几乎唯一有效的字符是filter('myDateFormat', function() { return function (data) { return data > 0 ? moment(data).format("YYYY-MM-DD") : ""; }; }) 。 其他一切都是字面意思。 值得注意的是,赋值运算符($=)周围的空白区域将被忽略。

:=

foo := this|works 分配了文字foo。 类似地,

this|works

将文字baz := 'make|will|not|accept|this|with|the|single|quotes' 指定给'make|will|not|accept|this|with|the|single|quotes'。 好又花花公子。

现在,当 make 决定构建baz时 (可能是因为你对shell this-fails-horribly说了) 它在做任何事之前扩展了命令块。 不无道理, make this-fails-horribly替换为$(whatIWant)。 再次,罚款和花花公子。 留下的内容是逐字传递给shell,一次一行。 shell看到了

"A string with its 'single|quoted|regex|alternatives'"

(如果您不使用printf '"A string with its 'single|quoted|regex|alternatives'"' 前缀,那么 make 会对您有所回应)。 现在我们在贝壳引用的土地上。

  • @命令传递一个参数:printf
    • "A string with its single是单引号字符串。 shell会剥离'"A string with its ' s,并留下文字'
    • "A string with its中没有元字符,因此shell单独留下它。
  • 输出通过管道传送到single命令
  • 输出通过管道传送到quoted命令
  • 输出通过管道传送到regex命令
    • shell会看到单引号字符串alternatives",删除带有文字'='的引号,并将其附加到单词=

没有语法错误。 当shell尝试设置管道时,它会查找alternatives命令。 它在alternatives"目录中找不到它,因此它会以$PATH消息停止。

一种可能的编码:

/bin/sh: 1: /bin/sh: 1: regex: not foundalternatives": not found

虽然您可能会发现将引号置于变量定义之外的方式更清晰。