这里发生了什么?
printf.sh:
#! /bin/sh NAME="George W. Bush" printf "Hello, %s\n" $NAME
命令行会话:
$ ./printf.sh Hello, George Hello, W. Hello, Bush
更新:printf "Hello, %s\n" "$NAME"
有效.为什么我没有使用echo
,请考虑
echo.sh:
#! /bin/sh FILE="C:\tmp" echo "Filename: $FILE"
命令行:
$ ./echo.sh Filename: C: mp
该POSIX规范的echo
说,"我们鼓励新的应用程序使用printf
,而不是echo
"(这和其他原因).
您的NAME变量将被替换为:
printf "Hello, %s\n" George W. Bush
用这个:
#! /bin/sh NAME="George W. Bush" printf "Hello, %s\n" "$NAME"