ferret 1207559273 learn DON'T put commands into variables to make them "configurable". If you ever change it from anything other than GREP='grep' you probably need to change the rest of the script ANYWAY. If you really need this use a function, like grep() { grep --stupid-options "$@"; } ferret 1207559647 forget ferret 1207559666 learn DON'T put commands into variables to make them "configurable". If you ever change it from anything other than GREP='grep' you probably need to change the rest of the script ANYWAY. If you really need this use a function, like unalias grep; grep() { command grep --stupid-option "$@"; } ferret 1207559876 forget ferret 1207559907 learn DON'T put commands into variables to make them "configurable". If you ever change it from anything other than GREP='grep' you probably need to change the rest of the script ANYWAY. If you really need this use a function, like mygrep() { \grep --stupid-option "$@"; } ferret 1224271514 forget ferret 1224271647 learn DON'T put commands into variables to make them "configurable" or "advanced". If you ever need to configure, say, WC='wc' to something else you'll probably need to change the rest of your script ANYWAY, so why bother? If you're doing something like LS='ls -1' use a function instead: myls() { ls -1 "$@"; } ferret 1224271913 forget ferret 1224272143 learn What is the point of doing things like: "$GREP" "$OPTIONS" "$MINUS_E" "$EXPRESSION" "$FILE"? It doesn't make your program more configurable or easy to use, and your OPTIONS variable probably doesn't work. See http://wooledge.org/mywiki/BashFAQ/050 lhunath 1224597692 forget lhunath 1224597880 learn ''$GREP $args $file'' -- Do NOT put command names or options in variables. You don't gain ANYTHING from making 'GREP' configurable, when replacing it with something else you'll need to change the whole command line ANYWAY. Commands like that belong in a *function*. See http://wooledge.org/mywiki/BashFAQ/050 lhunath 1405542167 forget lhunath 1405542319 learn ''GREP="/usr/bin/grep -i"; $GREP $FILE'' -- Do NOT put command names or options in variables. Doing so is dangerous and buggy. Variables are containers for DATA. Either inline the command completely or use a *function* instead. http://mywiki.wooledge.org/BashFAQ/050