Moh*_*our 1 string shell printf
我正在制作一个程序外壳 (#!/bin/sh),问题是 printf 只显示字符串参数的第一个单词。
这是为您简化的代码摘录:
#!/bin/sh
test="Good morning"
printf "\n"
printf $test
printf "\n"
Run Code Online (Sandbox Code Playgroud)
此代码仅输出Good.
双引号你的变量以避免被 shell 分词
printf "$test"
Run Code Online (Sandbox Code Playgroud)
此外,printflike的一般语法C是
printf <FORMAT> <ARGUMENTS...>
Run Code Online (Sandbox Code Playgroud)
文本格式在 中给出<FORMAT>,而格式字符串可能指向的所有参数都在此之后给出,这里用 表示<ARGUMENTS…>。
你看到的问题是因为一个未加引号的变量bash调用了分词。这意味着该变量在空格(或任何特殊变量$IFS已设置为)上拆分,并且每个结果单词用作一个 glob(它将扩展以匹配任何匹配的文件名)。你的问题是因为分裂部分。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |