
내 코드에 별칭을 사용하고 있는데 처음에는 작동하고 현재 시간을 표시하지만 두 번째로 호출하면 과거 시간이 표시됩니다(현재 시간 대신 이전 시간이 표시됨).
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)"
일반적 으로 $(...)
백틱보다 명령 대체가 선호됩니다.