The parentheses are needed for the shell command to be executed properly.
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: Motonori Shindo <[email protected]>
Showing with 2 additions and 2 deletions