I'm trying to write a shell script, and to make it more or less readable, i decided to bring a part of my commands into environment variables:
#!/bin/bash # Variables name_expression="-type d \( -name .folder1 -o -name .wildcardfolder* -o -name .folder2 \)" # Commands find /root/ -maxdepth 1 "$name_expression" -execdir rm -rf {} \; find /home/ -maxdepth 2 "$name_expression" -execdir rm -rf {} \; The problem is that if i try to run this shell, many symbols are wrapped with quotes:
bash -x ./my_shell.sh + name_expression='-type d \( -name .android -o -name .AndroidStudio* -o -name .gradle \)' + find /home/ /root/ -maxdepth 2 '-type d \( -name .folder1 -o -name .wildcardfolder* -o -name .folder2 \)' -execdir rm -rf '{}' ';' find: unknown predicate `-type d \( -name .folder1 -o -name .wildcardfolder* -o -name .folder2 \)' Is there any way to pass this variable without being modified?
*in there is going to be dangerous.