我正在尝试创建以某种颜色打印绑定到变量的消息的函数。消息变量作为该函数的参数传递。问题是我只得到第一个空格之前的文本(只有消息的第一个单词)。我的脚本如下所示:
#!/usr/bash
lbGREEN='\e[1;92m'
NC='\e[0m'
normalMessage="Everything fine"
echo_message() {
echo -e ${lbGREEN}$1${NC}
}
echo_message $normalMessage
Run Code Online (Sandbox Code Playgroud)
我的输出是:
Everything
Run Code Online (Sandbox Code Playgroud) 我的目录中有run.sh脚本。我还有两个名为d1.sh和d2.sh的脚本,位于其名为deep的子目录中。我想在 run.sh 脚本中获取 d1.sh 和 d2.sh ,因此我可以使用d2.sh中存储的“test”函数。
run.sh的代码如下所示:
#!/bin/bash
source ./deep/*
test
Run Code Online (Sandbox Code Playgroud)
d1.sh:
#!/bin/bash
echo -e "d1 is loaded"
Run Code Online (Sandbox Code Playgroud)
d2.sh:
#!/bin/bash
echo -e "d2 is loaded"
test() {
echo -e "test passed!"
}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令执行run.sh:
bash run.sh
Run Code Online (Sandbox Code Playgroud)
我得到输出:
d1 is loaded
Run Code Online (Sandbox Code Playgroud)
所以看起来d1.sh脚本正在加载,但d2.sh没有加载。我的问题是,为什么会发生这种情况以及我应该如何加载存储在./deep文件夹中的所有脚本?
我正在努力深入理解Java,我正在尝试比较相同的对象.
我创建了两个具有相同值的字符串对象,但分配给了不同的变量.事实证明它们具有相同的哈希码.
之后,我创建了表示person的简单类,并使用传递给构造函数的相同参数创建了此类的两个实例.原来他们有不同的哈希码.
现在我很困惑它是如何工作的.你能解释一下吗?
我的代码:
public static class Person {
public String name;
public String lastName;
public Person(String name, String lastName) {
this.name = name;
this.lastName = lastName;
}
}
public static void main(String[] args) {
String s1 = new String("foo");
String s2 = new String("foo");
System.out.println("String1 hashcode: " + s1.hashCode());
System.out.println("String2 hashcode: " + s2.hashCode());
System.out.println("Is String1 equal to String2?: " + s1.equals(s2));
Person p1 = new Person("John", "Doe");
Person p2 = new Person("John", "Doe");
System.out.println("Person1 hashcode: " + …Run Code Online (Sandbox Code Playgroud)