Как скопировать несколько файлов в каталог и одновременно войти в этот каталог?

Я пытаюсь написать функцию bash в моем .bashrc, которая копирует несколько файлов в каталог и вводит его, проблема в том, что он копирует файлы, но не входит в каталог, и говорит: «пропущенный каталог» cpcd () if [ -d "${!#}" ] then cp "$@" "${!#}" && cd "${!#}" && ls else print "last argument is not a directory or does not exist" fi

0
задан 26 April 2019 в 15:50

1 ответ

Когда вы делаете это:

cp "$@" "${!#}"

это приводит к тому, что последний аргумент (имя каталога) повторяется.

Итак, я думаю, что вы хотите, вероятно, это вместо этого (просто удалите "${!#}"):

cp "$@"

Другая проблема в том, что вы говорите, что он не входит в каталог. Сценарий, который вы просто выполняете нормально, не изменит ваш текущий рабочий каталог; если вы хотите, чтобы это произошло, вам нужно вместо этого использовать сценарий. Таким образом, вместо того, чтобы запускать его так:

./yourscript.sh [arguments]

, вы можете получить его, например, так:

. yourscript.sh [arguments]
0
ответ дан 26 April 2019 в 15:50

Другие вопросы по тегам:

Похожие вопросы: