我试过打印“狗是最好的”。用这个bash脚本。
#!/bin/bash
ANIMAL="Dog"
echo "$ANIMALs are the best."
exit
然而,我得到“是最好的”。因为s
中的$ANIMALS
未与变量分开而打印出来。我该如何分开?
答案 0 :(得分:32)
使用大括号:echo "${ANIMAL}s are the best."
带引号:echo "$ANIMAL"'s are the best.'
使用printf:printf '%ss are the best.\n' "$ANIMAL"
我不会在大多数情况下使用引号。我觉得它没有可读性,但是要注意这一点很好。
答案 1 :(得分:7)
用花括号括起变量的名称。
#!/bin/bash
ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit
答案 2 :(得分:3)
#!/bin/bash
ANIMAL="Dog"
echo "{$ANIMAL}s are the best."
exit
答案不再是唯一的,而是正确的......
答案 3 :(得分:2)
将变量移出echo:
中的引号之外#!/bin/bash
ANIMAL="Dog"
echo $ANIMAL"s are the best."
exit
或者:
#!/bin/bash
ANIMAL="Dog"
echo "${ANIMAL}s are the best."
exit
两者都为我工作
答案 4 :(得分:1)
无用的报价,无用的退出。一个完成的脚本不需要退出帮助,但退出将在采购该脚本时咬你。
ANIMAL=Dog
echo ${ANIMAL}s are the best.