私は基本を学ぼうとしていますが、ユーザーの入力の文字をカウントするスクリプトで問題が発生しました。これが私のスクリプトですが、誰かが間違っているところを指摘できますか?
#!/bin/bash
echo "Enter a word!"
read INPUT_STRING
len= echo $INPUT_STRING | wc -c
echo "Your character length is " $len
exit
私は基本を学ぼうとしていますが、ユーザーの入力の文字をカウントするスクリプトで問題が発生しました。これが私のスクリプトですが、誰かが間違っているところを指摘できますか?
#!/bin/bash
echo "Enter a word!"
read INPUT_STRING
len= echo $INPUT_STRING | wc -c
echo "Your character length is " $len
exit
回答:
すべての始まりは難しいです:
#!/bin/bash
read INPUT
echo $INPUT
len=$(echo -n "$INPUT" | LC_ALL=C.UTF-8 wc -m)
echo $len
具体的には、周囲にスペースがあってはならず=
、別のコマンドをで囲む必要があります$(...)
。また、"
この構文を使用して変数を引用符で囲む"${INPUT}"
こともできます。これにより、変数が誤って後に続くものと連結されず、特殊文字(例:改行\n
)を含めることができます。
LC_ALL=C
、ユーザーの設定がスクリプトに干渉するのを防ぐために、コマンドを実行します。たとえば[a-z]
、26のASCII文字をaからzに一致させる場合、次のように設定する必要がありますLC_ALL=C