$*의 첫 번째 매개변수를 제거합니다.

$*의 첫 번째 매개변수를 제거합니다.

나는 작은 "logit" 스크립트를 가지고 있습니다.

#!/bin/bash
echo "• $(date +%Y.%m.%d.%H.%M.%S) • " >> "$1"
printf "%s" "$*" >> "$1"

이렇게 하면 언제 어디서나 로그를 생성할 수 있습니다.

하지만! $*를 로그 파일에 인쇄하면 당연히 $1이 포함되지만 그것이 로그의 경로/파일 이름이므로 $*에서 제외하여 로그의 모든 줄에 표시되지 않도록 하고 싶습니다.

가능합니까?

답변1

네, 사용하세요shift

#!/bin/bash
echo "• $(date +%Y.%m.%d.%H.%M.%S) • " >> "$1"
log="$1"
shift
printf "%s" "$*" >> "$log"

남자들의 난교를 보세요

시프트[n]

n+1 ...에서 시작하는 위치 매개변수는 $1 ...로 이름이 변경됩니다. $#부터 $#-n+1까지의 숫자로 표시되는 매개변수는 설정되지 않습니다. n은 $#보다 작거나 같은 음수가 아닌 숫자여야 합니다. n이 0이면 매개변수가 변경되지 않습니다. n을 지정하지 않으면 1로 가정됩니다.

관련 정보