그래서 여기서는 명령줄 인수를 허용하는 명령에 대한 별칭을 만들거나 적어도 만들려고 시도하고 해당 이름으로 새 디렉터리를 만든 다음 해당 디렉터리로 변경했습니다.
alias newfolder='mkdir $2 ; cd "$(history | tail -2 | awk '\''NR == 1'\'' | awk '\''{print $3}'\'')"'
별칭이 성공적으로 생성되었지만 명령줄 인수를 사용하여 명령을 실행하려고 하면 이 오류 메시지가 나타납니다.
username:~/workspace (master) $ newfolder a
mkdir: missing operand
Try 'mkdir --help' for more information.
bash: cd: newfolder='mkdir: No such file or directory
답변1
별칭이 아닌 함수가 필요합니다. 노력하다:
newfolder() { mkdir -p "$1" && cd "$1"; }
예:
$ pwd
/tmp
$ newfolder dir1/dir2
$ pwd
/tmp/dir1/dir2
노트:
이
-p
옵션은mkdir
필요할 때 누락된 상위 디렉터리를 생성하도록 지시합니다. 위의 예에서dir1
및 는 존재하지 않지만mkdir -p dir1/dir2
생성dir1
됩니다dir2
.쉘 연산자를 사용하고 있기 때문에
&&
명령cd
은 성공한 경우에만 실행됩니다.mkdir
별칭은 고정 문자열이 단어를 대체할 수 있는 매우 간단한 상황에서 유용합니다. 별칭은 매개변수를 처리하지 않습니다.
별칭 대신 쉘 함수를 사용하기 때문에
$1
이 경우처럼 필요에 따라 매개변수를 인용할 수 있습니다.