인수 인식 별칭 명령?

인수 인식 별칭 명령?

현재 디렉터리에 있는 동일한 이름의 파일에 해당 curl파일을 자동으로 기록하는 별칭을 만들고 싶습니다 .curl

예를 들어:

% curl https://bootstrap.pypa.io/get-pip.py
    curl https://bootstrap.pypa.io/get-pip.py > get-pip.py

별칭이 다음 인수를 읽어서 실제 실행되는 스크립트에 이렇게 삽입하도록 하는 방법이 있나요?

답변1

별칭은 인수를 처리하지 않습니다. 다행히도 함수는 다음을 수행합니다.

mycurl () {
    curl "$1" > "${1##*/}"
}

${1##*/}"$1의 마지막 슬래시까지 모든 것을 제거하십시오"라는 매개변수 확장 형식은 어디에 있습니까?

답변2

만약 너라면필요한이렇게 하려면 bash 함수를 사용하거나 (더 복잡한 상황에서는) 자체 스크립트 파일에서 수행합니다 ~/bin/.

wget하지만 대신에 사용할 수도 있습니다 curl. 기본적으로 요청한 작업을 수행해야 하며 추가 보너스로 지정된 파일(예: http://example.com/)이 없는 URL 문제를 피할 수 있습니다.

답변3

PWD별칭 내에서 환경 변수( ), 명령 대체 또는 IO 리디렉션의 조합을 사용할 수 있는 몇 가지 해결 방법이 있습니다 . 다음은 Bash에서 가장 가까운 예입니다.

alias curl='xargs -I% curl -o "%" "%" <<<'

그러면 URL과 동일한 이름으로 파일이 저장됩니다.

$ curl https://bootstrap.pypa.io/get-pip.py
Warning: Failed to create the file https://bootstrap.pypa.io/get-pip.py

이는 해당 URL을 파일 이름으로 변환하여 추가로 수정할 수 있습니다.문자열 조작쉘 작업, 명령 대체 또는 기타 도구를 사용 basename합니다 awk.

curl또는 언제든지 다음을 가리킬 수 있습니다 wget.

$ alias curl=wget
$ curl https://bootstrap.pypa.io/get-pip.py
'get-pip.py' saved

관련 정보