다음 명령을 실행하면 파일 끝에 행(현재 날짜 포함)이 추가 되도록 alias
my에 추가하려고 합니다 ..bashrc
> push 123
2017-08-29/push/123
별칭 추가:
alias push='date +%F/push/ >> log.txt ; echo $1 >> log.txt'
문제가 거의 해결되었습니다. 그러면 아래와 같이 두 줄이 추가됩니다.
2017-08-29/push/
123
이것을 한 줄로 바꾸도록 도와주세요.
답변1
push () { date "+%F/push/$1" >> /tmp/pushlog.txt; }
이는 /tmp/pushlog.txt
파일에 문자열을 추가하는 쉘 함수를 정의합니다.
사용된 형식 문자열에는 date
쉘 함수에 대한 첫 번째 명령줄 인수가 포함되어 있습니다.
bash-4.4$ push 123
bash-4.4$ push "hello world"
bash-4.4$ push "%s"
bash-4.4$
bash-4.4$ cat /tmp/pushlog.txt
2017-08-29/push/123
2017-08-29/push/hello world
2017-08-29/push/1504041277
push
이전 예와 같이 해석될 수 있는 문자열 푸시를 사용하려고 하는데 date
이것이 원하는 것이 아닌 경우 대신 다음을 사용하십시오.
push () { printf '%s/push/%s\n' "$(date '+%F')" "$1" >> /tmp/pushlog.txt; }
파일에 원치 않는 개행 문자가 있는 이유는 date
개행 문자가 출력 끝에 출력되기 때문입니다. 이 개행 문자는 위의 쉘 함수의 두 번째 구현에서 했던 것처럼 in을 사용할 때 date
제거됩니다 .$(...)