ユーザー入力の文字数を数える次のスクリプトがあります。
echo -n "Type text: ";
read mystring;
echo -n $mystring | wc -m;
最後の行に「-n」がないと、echoを介して配置された改行文字も含まれるため、文字数が正しくありません(たとえば、「abc」の数は3ではなく4になります)。
練習のために、この修正をより複雑な方法で実行したいと思います。一般的なアイデアは次のとおりです。
var=$($mystring | wc -m);
echo -n "Type text: ";
read mystring;
echo $(( $var - 1 ));
したがって、ユーザーが入力した文字数は$ varになり、$ varから1を減算します。どのように機能させますか?
ベストアンサー1
スクリプトが実行されない理由はいくつかあります。
- この時点ではnullなので、最初に
var
実行されているコマンドの出力と同じになるように初期化してください。| wc -m
mystring
- 空でなくても、内容をコマンドとして実行し、その出力を
wc
。
A>正しい順序で仕事をし、ii.>正しいことをしなければなりません。
read -p "Type something > " mystring
var="$( wc -m <<< "$foo" )"
echo $(($var-1))