как передать части пути 'cd' в функцию оболочки?

272
Stratboy

Я пытаюсь что-то вроде этого:

function projects(){ cd; cd Documents/projects/$1; } 

но это не работает Я хотел бы передать имя папки для добавления в базовый путь (в результате, скажем, cd Documents / projects / myfolder). Делать так не получается:

projects myfolder 

Я не могу понять правильный синтаксис. Выполнил поиск в Интернете, но это должно быть правильно, но это не так: PI пришел из программирования на стороне клиента, поэтому я не совсем понимаю логику оболочки.

0
Когда вы говорите «это не работает», что именно вы подразумеваете под этим? Это показывает сообщение об ошибке? Это идет куда-то совершенно другое? grawity 8 лет назад 0
Что-то вроде `cd: string not in pwd` Stratboy 8 лет назад 0
поэтому он ищет строку в pwd вместо добавления в команду Stratboy 8 лет назад 0

1 ответ на вопрос

0
Marcus Handley

Хорошей идеей было бы использовать функцию echo в Documents / project, а затем использовать ее для отображения вашей переменной. Добавьте их вместе и используйте функцию pipe (|) для передачи их на cd

Это не имеет смысла - `cd` принимает путь как аргументы командной строки, _not_ как stdin, а команды в конвейере не могут влиять на процесс 'main' оболочки. grawity 8 лет назад 0
хорошо, спасибо. Так у вас есть предложения? :) Stratboy 8 лет назад 0