Search code examples
stringbashunixcharacterexitstatus

How can I check the first character in a string in Bash or Unix shell?


I'm writing a script in Unix where I have to check whether the first character in a string is "/" and if it is, branch.

For example, I have a string:

/some/directory/file

I want this to return 1, and:

server@10.200.200.20:/some/directory/file

to return 0.


Solution

  • There are many ways to do this. You could use wildcards in double brackets:

    str="/some/directory/file"
    if [[ $str == /* ]]; then echo 1; else echo 0; fi
    

    You can use substring expansion:

    if [[ ${str:0:1} == "/" ]] ; then echo 1; else echo 0; fi
    

    Or a regex:

    if [[ $str =~ ^/ ]]; then echo 1; else echo 0; fi