Bash 기능은 특정 문자를 반복합니다

Bash 기능은 특정 문자를 반복합니다

다음과 같은 기능이 있는데 5, 6 등이 있으면 중복되어 확장이 불가능합니다.

append_footnote(){
  file=$1
  if [ "$#" -ge 2 ];then 
    depth=$2
    if [ $depth -eq 1 ];then
      echo '<span style="float: footnote;"><a href="../index.html#toc">Go to TOC</a></span>' >> "$file"
    elif [ $depth -eq 2 ];then
      echo '<span style="float: footnote;"><a href="../../index.html#toc">Go to TOC</a></span>' >> "$file"
    elif [ $depth -eq 3 ];then
      echo '<span style="float: footnote;"><a href="../../../index.html#toc">Go to TOC</a></span>' >> "$file"
    elif [ $depth -eq 4 ];then
      echo '<span style="float: footnote;"><a href="../../../../index.html#toc">Go to TOC</a></span>' >> "$file"
    fi
  else
    echo '<span style="float: footnote;"><a href="./index.html#toc">Go to TOC</a></span>' >> "$file"
  fi
}

종속 arg 앞에 추가되었습니다 ../. 어떻게 하면 더 좋게 만들 수 있나요?index.html#toc$2

답변1

나는 이것에 대해 생각했다. 작동하지만 더 나은 해결책이 있으면 알려주십시오.

repeat(){
  END=$2
  for i in $(eval echo "{1..$END}")
  do
    echo -n "$1"
  done
}

append_footnote(){
  file=$1
  if [ "$#" -ge 2 ];then 
    depth=$2
    path_str=$(repeat '../' $depth)
    if [ $depth -gt 1 ];then
        echo "<span style='float: footnote;'><a href=\"${path_str}index.html#toc\">Go to TOC</a></span>" >> "$file"
    fi
  else
    echo '<span style="float: footnote;"><a href="./index.html#toc">Go to TOC</a></span>' >> "$file"
  fi
}

관련 정보