#!/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일
신상희 

Posted by 뚜와띠엔
,