У меня есть скрипт Bash, который (в упрощенном виде) делает это:
#!/bin/bash
function ag_search_and_replace {
ag -l "$1" "${@:3}" | xargs -r perl -i -pe "s/$1/$2/g"
}
locations="$@"
ag_search_and_replace search replace $locations
Это работает, как и ожидалось, когда аргумент не имеет пробелов, например ::
my_script foo bar
однако, когда есть пробелы, например ::100100
my_script foo "ba r"
скрипт не выполняется.
Есть ли простой способ обработки аргументов с пробелами?