bash 쉘에서 2D 배열을 사용하여 HTML 테이블을 만드는 방법
하고 싶은 일
본심 : 귀찮은 일은 하고 싶지 않다
꾸준히 쓰는 것도 꾸준히 수정하는 것도 귀찮아
HTML 테이블을 만드는 방법
1. 테이블의 한 줄에 사용할 문자군을 만든다
(샘플)
'곰 모리 peachpuff'
'고양이 거리 lightpink'
2. bash로 쉘 만들기
htmlMaker.sh
#!/bin/bash
dataArray=(
'くま もり peachpuff'
'ねこ まち lightpink'
'さる 上野動物園 burlywood'
'りす 鎌倉 khaki'
'魚 海 lightblue'
)
fileName='Table.html'
echo '<html>' > $fileName
echo '<table bordercolor="black">' >> $fileName
echo '<tr>' >> $fileName
echo '<th>動物</th>' >> $fileName
echo '<th>居場所</th>' >> $fileName
echo '</tr>' >> $fileName
for i in "${dataArray[@]}"; do
data=(${i[@]})
animal=${data[0]}
place=${data[1]}
color=${data[2]}
echo '<tr>' >> $fileName
echo '<td bgcolor="'$color'">'$animal'</td>' >> $fileName
echo '<td bgcolor="'$color'">'$place'</td>' >> $fileName
echo '</tr>' >> $fileName
done
echo '</table>' >> $fileName
echo '</html>' >> $fileName
3. 쉘을 움직여 HTML을 출력하도록 한다.
Table.html
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="peachpuff">くま</td>
<td bgcolor="peachpuff">もり</td>
</tr>
<tr>
<td bgcolor="lightpink">ねこ</td>
<td bgcolor="lightpink">まち</td>
</tr>
<tr>
<td bgcolor="burlywood">さる</td>
<td bgcolor="burlywood">上野動物園</td>
</tr>
<tr>
<td bgcolor="khaki">りす</td>
<td bgcolor="khaki">鎌倉</td>
</tr>
<tr>
<td bgcolor="lightblue">魚</td>
<td bgcolor="lightblue">海</td>
</tr>
</table>
</html>
4. 본다
이 방법의 단점
공백이 있는 문자열을 사용할 수 없음
누군가 좋은 방법을 말해주십시오.
이 방법을 따르기 전까지의 실패
초보자 지나 bash에서 다차원 배열은 궁리하지 않으면 할 수 없다는 것을 몰랐다
dataArray=(
('くま' 'もり' 'peachpuff')
)
이렇게 쓰고 화가났다.
$ bash htmlMaker.sh
htmlMaker.sh: line 4: syntax error near unexpected token `('
htmlMaker.sh: line 4: ` ('くま' 'もり' 'peachpuff')'
htmlMaker.sh: line 9: syntax error near unexpected token `)'
htmlMaker.sh: line 9: `)'
그러니까 BASH에서 2차원 배열 의 방법을 베이스로 생각하기로 했다
배열을 전개하는 방법을 몰랐다.
for i in $dataArray; do
data=$i
animal=$data[0]
place=$data[1]
color=$data[2]
<省略>
done
이렇게 썼다.
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="くま[2]">くま[0]</td>
<td bgcolor="くま[2]">くま[1]</td>
</tr>
<tr>
<td bgcolor="もり[2]">もり[0]</td>
<td bgcolor="もり[2]">もり[1]</td>
</tr>
<tr>
<td bgcolor="peachpuff[2]">peachpuff[0]</td>
<td bgcolor="peachpuff[2]">peachpuff[1]</td>
</tr>
</table>
</html>
배열 사용 에서 공부하고 수정했습니다.
더블 따옴표 (")로 배열을 넘길 필요성을 몰랐다.
for i in ${dataArray[@]}; do
data=$i
animal=${data[0]}
place=${data[1]}
color=${data[2]}
<省略>
done
이렇게 썼다.
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="">くま</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">もり</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">peachpuff</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">ねこ</td>
<省略>
<td bgcolor="">lightblue</td>
<td bgcolor=""></td>
</tr>
</table>
</html>
【bash】쉘의 배열에 대해서 의 사이트에서 가르쳐 주고 다시
배열에 있는 배열을 뽑는 방법을 모르는
for i in "${dataArray[@]}"; do
data=$i
<省略>
done
이렇게 썼다.
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="">くま もり peachpuff</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">ねこ まち lightpink</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">さる 上野動物園 burlywood</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">りす 鎌倉 khaki</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">魚 海 lightblue</td>
<td bgcolor=""></td>
</tr>
</table>
</html>
이렇게 해도 결과는 동일했습니다.
for i in "${dataArray[@]}"; do
data=${i[@]}
<省略>
done
bash의 감정을 화장실에서 생각하고 생각해 수정했습니다
Reference
이 문제에 관하여(bash 쉘에서 2D 배열을 사용하여 HTML 테이블을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ponsuke0531/items/86df8752d8a4c4e9ca92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
dataArray=(
('くま' 'もり' 'peachpuff')
)
$ bash htmlMaker.sh
htmlMaker.sh: line 4: syntax error near unexpected token `('
htmlMaker.sh: line 4: ` ('くま' 'もり' 'peachpuff')'
htmlMaker.sh: line 9: syntax error near unexpected token `)'
htmlMaker.sh: line 9: `)'
for i in $dataArray; do
data=$i
animal=$data[0]
place=$data[1]
color=$data[2]
<省略>
done
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="くま[2]">くま[0]</td>
<td bgcolor="くま[2]">くま[1]</td>
</tr>
<tr>
<td bgcolor="もり[2]">もり[0]</td>
<td bgcolor="もり[2]">もり[1]</td>
</tr>
<tr>
<td bgcolor="peachpuff[2]">peachpuff[0]</td>
<td bgcolor="peachpuff[2]">peachpuff[1]</td>
</tr>
</table>
</html>
for i in ${dataArray[@]}; do
data=$i
animal=${data[0]}
place=${data[1]}
color=${data[2]}
<省略>
done
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="">くま</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">もり</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">peachpuff</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">ねこ</td>
<省略>
<td bgcolor="">lightblue</td>
<td bgcolor=""></td>
</tr>
</table>
</html>
for i in "${dataArray[@]}"; do
data=$i
<省略>
done
<html>
<table bordercolor="black">
<tr>
<th>動物</th>
<th>居場所</th>
</tr>
<tr>
<td bgcolor="">くま もり peachpuff</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">ねこ まち lightpink</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">さる 上野動物園 burlywood</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">りす 鎌倉 khaki</td>
<td bgcolor=""></td>
</tr>
<tr>
<td bgcolor="">魚 海 lightblue</td>
<td bgcolor=""></td>
</tr>
</table>
</html>
for i in "${dataArray[@]}"; do
data=${i[@]}
<省略>
done
Reference
이 문제에 관하여(bash 쉘에서 2D 배열을 사용하여 HTML 테이블을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ponsuke0531/items/86df8752d8a4c4e9ca92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)