Question: I want to use a command to be printed on the same line as the string.
for example, i want to print something like:

hostname: cpu1

but when i use the command like this it doesnt work

```
echo 'hostname:' hostname

```

Answer: 
Two answers are already given saying that you "need to" and "should" use command substitution by doing:

```
echo "hostname: $(hostname)"

```

but I will disagree with both. Although that works, it is aesthetically unappealing. That command instructs the shell to run `hostname` and read its output, and then pass that output as part of the argument to echo. But all that work is unnecessary. For this simple use case, it is "simpler" to do:

```
printf "hostname: "; hostname

```

(Using printf to suppress the newline, and avoiding `echo -n` because `echo` really should be treated as deprecated). This way, the output of hostname goes directly to the shell's stdout without any additional work being done by the shell. I put "simpler" in quotes because an argument could be made that humans find `printf "hostname: %s\n" "$(hostname)"` or `echo "hostname: $(hostname)"` to be simpler, and perhaps looking at much code that does things that way warps your mind and even makes it look simpler, but a few moments reflection should reveal that indeed it is not.

OTOH, there are valid reasons for collecting the output and writing the message with echo/printf. In particular, by doing it that way, the message will (most likely) be written with one system call and not be subject to interleaving with messages from other processes. If you `printf` first and then execute `hostname`, other processes' data may get written between the output of `printf` and the output of `hostname`. As always, YMMV.
This is what you should do:

```
echo "hostname: `hostname`"

```

Words enclosed in backticks are read by the command line as commands even when they are inside a string, like in this case.

Have a great day! :)