Skip to content
  • Motonori Shindo's avatar
    The parentheses are needed for the shell command to be executed properly. · e515a4be
    Motonori Shindo authored
    
    
    If the shell command looks like
    
      "condition1 && command1 || condition2 && command2 || command3"
    
    then condition2 will never be checked if condition1 is true and command1
    exists normally. In order for this code to run expectedly, it should look
    like
    
      "(condition1 && command1) || (condition2 && command2) || command3"
    
    instead.
    
    Specifically, with the code like
    
      "[ ! -d /Users ]&& sudo mkdir /Users; sudo mount --bind /mnt/hgfs/Users /Users || [ -f /usr/local/bin/vmhgfs-fuse ]&& sudo /usr/local/bin/vmhgfs-fuse -o allow_other .host:/Users /Users || sudo mount -t vmhgfs -o uid=$(id -u),gid=$(id -g) .host:/Users /Users"
    
    if both "[ ! -d /Users ]" and "sudo mkdir /Users; sudo mount --bind
    /mnt/hgfs/Users /Users" are true, then the existence of a file
    /usr/local/bin/vmhgfs-fuse will never be examined and always be executed
    even if the file doesn't exist. Consequently, it always fails.
    
    Signed-off-by: default avatarMotonori Shindo <motonori@shin.do>
    e515a4be