pa4*_*080 6 command-line bash scripts echo wc
我正在处理 Bash 脚本,并且某个变量中包含的字符串长度是我的条件之一。当前字符串是W5u7TBTzF17GGFV8DBJHvgAAAAI. 最初我通过以下帮助计算字符串长度wc -c:
$ VAR='W5u7TBTzF17GGFV8DBJHvgAAAAI'; echo "$VAR" | wc -c
28
Run Code Online (Sandbox Code Playgroud)
但我的脚本条件[[ ${#VAR} -eq 28 ]]从未通过。然后我决定一个一个地数字符。实际上字符串长度是 27 个字符,其值${#VAR}也是 27:
$ echo "${#VAR}"
27
Run Code Online (Sandbox Code Playgroud)
所以我想知道 - 这种差异来自哪里?
Geo*_*sen 13
这是工作的方式echo。现在做
echo koko
Run Code Online (Sandbox Code Playgroud)
你得到
georgek@georgek-HP-Pavilion-17-Notebook-PC:~$ echo koko
koko
Run Code Online (Sandbox Code Playgroud)
但是echo -n koko,你会得到
georgek@georgek-HP-Pavilion-17-Notebook-PC:~$ echo -n koko
kokogeorgek@georgek-HP-Pavilion-17-Notebook-PC:~$
Run Code Online (Sandbox Code Playgroud)
所以wc被捕获newline character了。用
echo -n "${VAR}" | wc -c
Run Code Online (Sandbox Code Playgroud)
以获得想要的结果。该echo命令将添加newline字符,因此也会被计算在内。要删除它并获得实际计数,请使用该-n选项。
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |