내가 원하는 것은 명령이 성공할 경우 관련 정보를 인쇄하는 명령을 만드는 것입니다. 예를 들어 별칭을 다음과 같이 정의하면
alias cd='cd /path/to/destination/ && echo "changing directory to echo $(pwd)"'
그런 다음 실행하면 cd
터미널이 인쇄됩니다 changing directory to /path/to/destination/
. 하지만 이 솔루션을 사용하면 command 에 정의된 플래그를 사용할 수 없습니다 cd
. 위와 유사하게 동작하지만 기본 명령에 대해 원래 정의된 모든 플래그를 허용하는 명령을 정의하고 싶습니다. , mkdir
및 에 대해 이 작업을 수행할 계획입니다 .cp
rm
답변1
스크립트나 함수로 래핑하세요 ~/.bash_profile
.
예를 들면 다음과 같습니다 mycmd.sh
.
#! /bin/bash
your "$1"
commands "$1"
shift
the_original_command "$@"
기능:
mycmd() {
your "$1"
commands "$1"
shift
the_original_command "$@"
}
다음과 같은 여러 매개변수를 사용해야 하는 경우
your "$1"
commands "$2"
shift 2
, 3, 4, 5 등을 사용합니다 .
따라서 다음과 같습니다.
your "$1"
commands "$2"
shift 2
the_original_command "$@"
답변2
Bash 구성 파일( ~/.bashrc
)에 다음 명령을 추가한 후 셸을 다시 시작할 수 있습니다.
function cd_echo() {
cd "${@}";
echo "Changing directory to $(pwd)";
}
alias cd="cd_echo";
시험 결과:
$ cd /home
Changing directory to /home
$ cd -P /dev
Changing directory to /dev