Как правило, вы просто ссылаетесь на первый аргумент как "$1"
, включая кавычки.Если вы хотите использовать имя каталога в качестве аргумента, а в имени есть пробелы, вы, как правило, заключаете его в кавычки в командной строке:
alias finder='cd "$1" && open .'
...
finder "/some/dir/with spaces/in its name"
Это также хорошо работает с завершением табуляции, которое экранируетсяпробел для вас.И в этом конкретном случае вы, вероятно, могли бы также использовать команду open
напрямую.
Но если вы хотите, чтобы псевдоним finder
объединял несколько аргументов в одну строку, разделенную пробелами, которая фактически превращаетбыть тяжелее.Я пробовал некоторые возможности, используя $*
и $@
, но они не работают правильно.Для тестирования я использую собственную команду echol
, которая печатает каждый из своих аргументов в отдельной строке.
$ echol foo bar
foo
bar
$ alias e='echol "$*"'
$ e foo bar
foo
bar
$ alias e='eval echo \""$*"\"'
$ e foo bar
foo bar
Эта последняя из них является ближайшей, которую я получил, но она добавляет дополнительнуюначальный пробел.
Я думаю, вам лучше просто процитировать имя каталога.