Bash 스크립트에서 별칭 사용

Bash 스크립트에서 별칭 사용

내 코드에 별칭을 사용하고 있는데 처음에는 작동하고 현재 시간을 표시하지만 두 번째로 호출하면 과거 시간이 표시됩니다(현재 시간 대신 이전 시간이 표시됨).

  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)"

일반적 으로 $(...)백틱보다 명령 대체가 선호됩니다.

관련 정보