如何检查unix中的string中的第一个字符
我正在写unix脚本,我必须检查string中的第一个字符是“/”,如果是,分支。
例如我有一个string
/some/directory/file
我想这个返回1
和
server@10.200.200.20:/some/directory/file
这个返回0
我该怎么做呢?
许多方法来做到这一点。 您可以在双括号中使用通配符:
str="/some/directory/file" if [[ $str == /* ]]; then echo 1; else echo 0; fi
你可以使用子string扩展:
if [[ ${str:0:1} == "/" ]] ; then echo 1; else echo 0; fi
或者是一个正则expression式:
if [[ $str =~ ^/ ]]; then echo 1; else echo 0; fi
还要考虑一下与大多数基于sh的shell相兼容的case语句:
case "$STRING" in /*) echo 1 ;; *) echo 0 ;; esac
$ foo="/some/directory/file" $ [ ${foo:0:1} == "/" ] && echo 1 || echo 0 1 $ foo="server@10.200.200.20:/some/directory/file" $ [ ${foo:0:1} == "/" ] && echo 1 || echo 0 0