私はシェルスクリプトに初めて触れました。端末にテキストを表示する「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}
文字列の長さですprintf
echo
表示文字列とフォーマット出力に置き換えることができます。%s
printf
改行なしで文字列を表示するように指示します。\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 " "