少なくとも、それは問題なく機能しbash
ます。まあ、read
うまくいきます。ただし、への割り当てresult
はおそらく次のようになります。
result=$(wc -l $filename)
ただし、このコマンドは行数とファイル名の両方を出力するため、行数を取得するために少し変更することをお勧めします。たとえば、次のようになります。
result=$(cat $filename | wc -l)
また:
result=$(wc -l <$filename)
あなたが持っているコマンド:
result=wc -l $filename
result
はリテラルに設定されwc
、コマンドを実行しようとし-l
ます。
たとえば、次の5行のスクリプト:
#!/bin/bash
echo "Pls enter your filename:"
read filename
result=$(cat $filename | wc -l)
echo "Your file has $result lines"
実行してその名前を入力として指定すると、次のようになります。
Your file has 5 lines
を使用していない場合は、使用bash
しているシェルを指定する必要があります。シェルが異なれば、物事のやり方も異なります。