Попробуйте unzip $1 "$main"
То, как вы делаете это, имеет слишком много кавычек.
В верхней версии:
Синглкавычки не позволяют bash пытаться интерпретировать сам аргумент, но обрезаются так, что unzip
передается строка без кавычек.
Во втором случае:
- Если вы нене цитируйте аргумент, bash попытается интерпретировать скобки в
$main
, что приведет к ошибкам. - Если вы не введете кавычки,
bash
снова попытается интерпретировать скобки. - ЕслиВы вводите в кавычки аргумент, bash не будет расширять переменную, и
unzip
будет передана литеральная строка "$main
" в качестве второго аргумента. - Если вы дважды заключите в кавычку аргумент, все будет1026 * точно .