如何检查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