![Bash 스크립트에서 별칭 사용](https://linux55.com/image/216560/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EB%B3%84%EC%B9%AD%20%EC%82%AC%EC%9A%A9.png)
내 코드에 별칭을 사용하고 있는데 처음에는 작동하고 현재 시간을 표시하지만 두 번째로 호출하면 과거 시간이 표시됩니다(현재 시간 대신 이전 시간이 표시됨).
GNU nano 6.2 aliases.sh
#!/bin/bash
shopt -s expand_aliases
alias TODAY="date"
echo "This shell represent differences between static substitution and dynamic substitut>
echo "==============================================================================="
DATE=`date`
echo "Static substitution"
echo "Start of bash script is: $DATE"
echo "Now I'm going to sleep for one minute"
sleep 5s
echo " end of the script: $DATE"
echo "------------------------------------------------------------------------------"
echo "Dynamic Substitution"
DDATE=`TODAY`
echo " Current Date is $DDATE"
echo "Now I'm going to sleep for one minute"
sleep 30s
echo "end of script date is $DDATE"`
답변1
날짜를 변수에 설정하면 한 번만 호출되고 변수는 정적 참조가 됩니다.
다음을 수행할 수 있습니다.
echo "------------------------------------------------------------------------------"
echo "Dynamic Substitution"
echo " Current Date is $(today)"
echo "Now I'm going to sleep for one minute"
sleep 30s
echo "end of script date is $(today)"
일반적 으로 $(...)
백틱보다 명령 대체가 선호됩니다.