小编s-k*_*rek的帖子

为什么这个 bash 函数只打印整个字符串的第一个单词?

我正在尝试创建以某种颜色打印绑定到变量的消息的函数。消息变量作为该函数的参数传递。问题是我只得到第一个空格之前的文本(只有消息的第一个单词)。我的脚本如下所示:

#!/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)

linux bash shell scripting

4
推荐指数
1
解决办法
2073
查看次数

如何从另一个脚本的文件夹中获取多个 bash 脚本,以便我可以使用这两个脚本中的函数?

我的目录中有run.sh脚本。我还有两个名为d1.shd2.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文件夹中的所有脚本?

linux bash shell scripting

3
推荐指数
1
解决办法
2094
查看次数

我很困惑哈希码和等于怎么样 - 为什么用相同参数创建的两个对象彼此不相等?

我正在努力深入理解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)

java equals object hashcode

0
推荐指数
1
解决办法
84
查看次数

标签 统计

bash ×2

linux ×2

scripting ×2

shell ×2

equals ×1

hashcode ×1

java ×1

object ×1