Как передать этот путь в функцию bash? - PullRequest
0 голосов
/ 19 февраля 2009

У меня были проблемы с перемещением в каталоги с пробелами в названии, но я просто подумал, что это проблема с Cygwin, и обошел ее

Потом я обнаружил, что могу создать символические ссылки на эти каталоги, что заставило меня подумать, что это не Cygwin. Потом я вспомнил, что создал псевдоним для cd, который будет перечислять содержимое каталога, и увидел это:

cdls { cd $1; ls; }
alias cd='cdls'

Так что проблема в том, что, когда я пытаюсь это сделать, это терпит неудачу:

$ cd /cygdrive/c/Program\ Files/
bash: cd: /cygdrive/c/Program: No such file or directory

Я вижу, что из-за пробела путь разбивается на несколько аргументов, но как мне снова соединить их вместе?

Ответы [ 3 ]

3 голосов
/ 19 февраля 2009

Цитировать это:

cdls { cd "$1"; ls; }

Цитирование в bash может стать проблематичным, поскольку существует несколько уровней интерпретации, но обычно это всего лишь вопрос немного поиграть с ним.

1 голос
/ 19 февраля 2009

Попробуйте:

cdls() { cd "$1"; ls; }
0 голосов
/ 19 февраля 2009

Похоже, мне просто нужно было объяснить проблему, чтобы ответ пришел ко мне. Мое решение:

cdls () { cd "$*"; ls ; }
alias cd='cdls'

Simple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...