シェルスクリプトでテキストを入力する

シェルスクリプトでテキストを入力する

私はシェルスクリプトに初めて触れました。端末にテキストを表示する「echo」に似たコマンドがあるかどうか疑問に思いました。

誰かがメニューのような簡単なスクリプトを説明するページを教えてくれたら、ありがとう。

答え1

ここは純粋です解決策:

string='foo bar base'
for ((i=0; i<=${#string}; i++)); do
    printf '%s' "${string:$i:1}"
    sleep 0.$(( (RANDOM % 5) + 1 ))
done 
  • ${#variable}文字列の長さです
  • printfecho表示文字列とフォーマット出力に置き換えることができます。
  • %sprintf改行なしで文字列を表示するように指示します。\n
  • ${string:$i:1}[パラメータ拡張]1文字列の特定の文字のみを表示
  • $(( ))一部山水
  • $(( ( RANDOM % 5 ) + 1 ))整数表示:ランダムに1〜5

ボーナス

パラメータで使用される関数は次のとおりです。

matrix(){
    tput setaf 2 &>/dev/null # green powaaa
    for ((i=0; i<=${#1}; i++)); do
        printf '%s' "${1:$i:1}"
        sleep 0.$(( (RANDOM % 5) + 1 ))
    done
    tput sgr0 2 &>/dev/null
}

matrix 'foo bar base'

答え2

タイプライターと呼びます。

count=0
echo "enter your name"
read b
sleep 2
a="hello"
a=`echo $a" "$b" nice to meet you"`
while [ $count -lt $((${#a}+1)) ]
do
    x=`expr substr "$a" $count 1`
    if [ "$x" != " " ]
    then
        echo -n $x
        sleep 0.2
    else echo -n " "
    fi
    count=$(($count+1))
done
echo " "

関連情報