在我的bash
脚本中,我想检查字符串是否以# modified:
或开头# new file:
。在这两种情况下,# 后面的字符都是制表符。在后一种情况下,“new”和“file”之间的字符是一个空格。
我试过:
if [[ $outline == "#\tmodified:*" ]]; then
和
if [[ $outline == "# modified:*" ]]; then
(在# 后点击实际选项卡)
但都没有奏效。我该怎么做呢?
使用任何 POSIX shell:
tab=$(printf '\t') # or tab=' ' # (a real tab character)
case $outline in
("#${tab}modified:"*) ...
esac
Run Code Online (Sandbox Code Playgroud)
与ksh93
,zsh
或bash
:
case $outline in
($'#\tmodified:'*) ...
esac
Run Code Online (Sandbox Code Playgroud)
或者:
if [[ $outline = $'#\tmodified:'* ]]; then...
Run Code Online (Sandbox Code Playgroud)
关键是:
*
不得引用,否则按字面理解。\t
仅在$'...'
引用类型中扩展(或printf
在格式参数中扩展) 归档时间: |
|
查看次数: |
16755 次 |
最近记录: |