我正在尝试为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();
}
}
}
为什么尝试在shell中运行此字符串的一部分?
如何定义变量以准确包含whatIWant的内容?
答案 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
命令
alternatives"
,删除带有文字'='
的引号,并将其附加到单词=
没有语法错误。
当shell尝试设置管道时,它会查找alternatives
命令。
它在alternatives"
目录中找不到它,因此它会以$PATH
消息停止。
一种可能的编码:
/bin/sh: 1: /bin/sh: 1: regex: not foundalternatives": not found
虽然您可能会发现将引号置于变量定义之外的方式更清晰。