#!/bin/bash
until [[ $a == True ]]
do
for switch in figlet toilet
do
x=$(( ( $RANDOM % 90000 ) + 1 ))
y=$(awk "NR==$x" ~/vocabulary-dataset/en/nouns.txt)
$switch $y
sleep 1
done
done
1. 애에게 농담삼아 영어 사전의 단어를 랜덤하게 읽어 들인 뒤 figlet이나 toilet 같은 꾸밈문자로 번갈아가며 출력하는 쉡 스크립트를 짜 보라고 했더니 한 5분 만에 이렇게 짜 왔다. 먼저 깃허브에서 영어 사전 하나를 찾더니 이걸 로컬 폴더에 클로닝했다. 그뒤 그 사전을 참조해 랜덤으로 단어를 아래처럼 출력하는 쉘 스크립트를 짠 것. awk까지 자유롭게 다루는 게 인상적이다. 중1 치고는 실력이 제법이다.
2. 위 버전의 스크립트를 조금 더 발전시킨 버전이다. 단어의 문자 수를 세어 짝수이면 소가 홀수이면 펭귄이 단어를 말하는 스크립트다. 그리고 임의의 수 발생 범위도 실제 사전의 전체 단어수에 맞췄다.
#!/bin/bash
f=$(awk 'END { print NR }' ~/vocabulary-dataset/en/nouns.txt)
until [[ $a == True ]]
do
y=$(shuf -i 1-$f -n 1)
x=$(awk "NR==$y" ~/vocabulary-dataset/en/nouns.txt)
z=$(echo -n "$x" | wc -c)
if (( $z % 2 == 0 ))
then
cowsay "$x"
else
cowsay -f tux "$x"
fi
sleep 1
done
3. 아래 코드는 chatGPT를 이용해 짜 본 코드다. 처음에는 잘못 짰지만 오류를 지적하니 스스로 수정해서 꽤나 깔끔한 코드를 만들어냈다.
#!/bin/bash
until [[ $a == True ]]
do
# Get a random line from the dictionary file
line=$(shuf -n 1 ~/vocabulary-dataset/en/nouns.txt)
# Calculate the remainder of the number of characters divided by 2
remainder=$(expr $(echo -n $line | wc -m) % 2)
# Check if the number of characters is even or odd
if [ $remainder -eq 0 ]; then
# Use figlet to display the word in a large, fancy font
figlet $line
else
# Use toilet to display the word in a large, fancy font
toilet $line
fi
sleep 1
done
2022년 12월 7일
신상희
'낙서장 > 육아일기' 카테고리의 다른 글
애가 만든 ITZY의 WANNABE Instrumental track (0) | 2023.01.17 |
---|---|
애 방학 (0) | 2023.01.06 |
아빠 꿈 이야기 (0) | 2022.12.23 |
중학교에서 배우기 (0) | 2022.12.23 |
애 그림 (0) | 2022.12.14 |
프로그래밍으로 입문하는 애의 의식의 흐름 (0) | 2022.12.05 |
10대 딸에게 배우기 (1) | 2022.12.05 |
애가 만든 mago3D 소음 시뮬레이션 동영상 (0) | 2022.11.28 |
애가 만든 Riptide 뮤직 비디오 (0) | 2022.11.24 |
리눅스 쉘 스크립트 공부 중인 아이 (0) | 2022.11.23 |