21

我尝试打印“狗是最好的”。使用这个 bash 脚本。

#!/bin/bash

ANIMAL="Dog"
echo "$ANIMALs are the best."
exit 

但是,我得到了“是最好的”。而是打印出来,因为sin$ANIMALS没有与变量分开。我该如何分开它?

4

5 回答 5

45

带大括号:echo "${ANIMAL}s are the best."

带引号:echo "$ANIMAL"'s are the best.'

使用 printf:printf '%ss are the best.\n' "$ANIMAL"

大多数时候我不会使用引号。我觉得它不可读,但知道它是件好事。

于 2013-08-19T18:02:44.270 回答
8

只需用花括号将变量的名称括起来。

#!/bin/bash

ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit 
于 2013-08-19T18:02:58.427 回答
3
#!/bin/bash


ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit 

答案不再是唯一的,而是正确的……

于 2013-08-19T18:03:02.153 回答
2

将变量移到 echo 引号之外:

#!/bin/bash

ANIMAL="Dog"
echo $ANIMAL"s are the best."
exit 

或者 :

#!/bin/bash

ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit 

两者都为我工作

于 2013-08-19T18:03:05.707 回答
2

无用的报价,无用的退出。完成的脚本不需要帮助即可退出,但在获取该脚本时退出会咬你。

ANIMAL=Dog
echo ${ANIMAL}s are the best.
于 2013-08-19T18:30:55.263 回答