내 로그 파일을 열기 위해 별칭을 만들려고 합니다.
alias open_log='date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log;'
별칭을 실행할 때
open_log
나는 가지고있다
꼬리: 읽기 위해 '/home/benu/logs/reconfig-.log'를 열 수 없습니다. 해당 파일이나 디렉터리가 없습니다.
하지만 내가 달리면
"이 별칭에 대해 내가 설정한 내용"
date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log;
그것은 아주 잘 작동합니다.
+ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
+ mkdir -p /etc/nginx/sites-available
+ cp /root/portal-data/sites-available/default-https /etc/nginx/sites-available/default
+ '[' '!' -f /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem ']'
+ echo 'Error: Unable to find certificate at /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem'
Error: Unable to find certificate at /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem
+ exit 1
Error: Executing /home/benu/reconfig.d/70-ssc-portal.sh returned 1
Reconfigure aborted
왜 그들은 다르게 행동합니까? 누구든지 자세히 설명할 수 있나요?
별칭이 제대로 작동하도록 수정하려면 어떻게 해야 합니까?
답변1
미안해요, @ihue. 나는 처음부터 틀렸다. @ilkkachu님 감사합니다.
편집하기 전에 실행된 명령줄과 별칭을 비교합니다.
alias 'date=date +%y%m%d;sudo tail -n 10 ~/logs/reconfig-$date.log;'
date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log;
별칭에 백틱이 없습니다. 또한 백틱은 다음과 같습니다.모든 것이 구식이다. 명령 대체에는 다음 형식을 사용하십시오. $(command)
.
큰따옴표는 이와 같이 작동하며 별칭이 설정될 때마다 날짜가 설정됩니다.
alias open_log="sudo tail -n 10 ~/logs/reconfig-$(date +%y%m%d).log"
작은따옴표는 동적으로 작동하여 별칭이 호출될 때마다 날짜를 설정합니다.
alias open_log='sudo tail -n 10 ~/logs/reconfig-$(date +%y%m%d).log'