数値を完全なテキストに変換するスクリプトをLinuxで作成する必要があります。時間が触れて例外もなく、カンマの後の数字もないコードを解くべきだったけどそれでもダメですね。プログラムは変数を認識しないので、主に構文に関連する助けが必要です。これが私が今持っているものです(オランダ語で)。
更新:(私の考えでは)最も重要な部分を英語に翻訳しました。
#!/bin/bash
echo -prijs "Give the price: "
read price
thousands='expr $price /1000'
hundreds='expr ($price - $thousands) / 100'
teens='expr ($price - $hundreds - $thousands / 10'
units='expr $price - $hundreds - $thousands - $teens'
for ((i=0 ; i<=$thousands; i++ ))
do
case $thousands in
0) echo -prijs "";;
1) echo -prijs "duizend";;
2) echo -prijs "tweeduizend";;
3) echo -prijs "drieduizend";;
4) echo -prijs "vierduizend";;
5) echo -prijs "vijfduizend";;
6) echo -prijs "zesduizend";;
7) echo -prijs "zevenduizend";;
8) echo -prijs "achtduizend";;
9) echo -prijs "negenduizend";;
10) echo -prijs "tienduizend";;
esac
done
for ((i=0 ; i<=$hundreds; i++ ))
do
case $hundreds in
0) echo -prijs "";;
1) echo -prijs "honderd";;
2) echo -prijs "tweehonderd";;
3) echo -prijs "driehonderd";;
4) echo -prijs "vierhonderd";;
5) echo -prijs "vijfhonderd";;
6) echo -prijs "zeshonderd";;
7) echo -prijs "zevenhonderd";;
8) echo -prijs "achthonderd";;
9) echo -prijs "negenhonderd";;
esac
done
for ((i=0 ; i<=$teens; i++ ))
do
case $teens in
0) echo -prijs "";;
1) echo -prijs "tien";;
2) echo -prijs "twintig";;
3) echo -prijs "dertig";;
4) echo -prijs "veertig";;
5) echo -prijs "vijftig";;
6) echo -prijs "zestig";;
7) echo -prijs "zeventig";;
8) echo -prijs "tachtig";;
9) echo -prijs "negentig";;
esac
done
for ((i=0 ; i<=$units; i++ ))
do
case $units in
0) echo -prijs "";;
1) echo -prijs "een";;
2) echo -prijs "twee";;
3) echo -prijs "drie";;
4) echo -prijs "vier";;
5) echo -prijs "vijf";;
6) echo -prijs "zes";;
7) echo -prijs "zeven";;
8) echo -prijs "acht";;
9) echo -prijs "negen";;
esac
done
echo "The price is: " 'expr $thousands + $hundreds + $teens + $units'
ベストアンサー1
コードにはいくつかの問題があります。最初の問題は、バックティックを使用する必要がある場所に一重引用符を使用していることです。 2番目の問題は、expr
bashでは実際には必要ありませんが、$(())
これを行うことです。 3番目の問題は、公式が単に間違っているということです。 4番目の問題は-prijs
コメントで指摘されています。コードのこの部分を書き直してください。
thousands='expr $price /1000'
hundreds='expr ($price - $thousands) / 100'
teens='expr ($price - $hundreds - $thousands / 10'
units='expr $price - $hundreds - $thousands - $teens'
到着
thousands=$((price/1000))
hundreds=$((price%1000/100))
teens=$((price%100/10))
units=$((price%10))
%
Bashのモジュロ演算子はどこにありますか?-prijs
残りの部分(スクリプトの内容や最後の行など)を直接修正してみてください。