Мне нужно посчитать количество строк в файле и затем отправить сообщение в зависимости от того, меньше или равно 20 строк. Я пытаюсь сделать это следующим образом:
touch file.txt echo "hello" > file.txt nr_lines = $(wc -l < file.txt) if[$nr_lines -le 20]; then echo "number of lines is less than 20." fi
Но это не работает. Что я делаю не так?
nr_lines = $(wc -l < file.txt) if[$nr_lines -le 20]; then
Это должно быть:
nr_lines=$(wc -l < file.txt) if [ $nr_lines -le 20 ]; then
Я бы использовал awk, хотя.
awk 'NR>=20{exit} END{if(NR<20)print "number of lines is less than 20"}' file.txt
Вы много делаете правильно! В вашем коде всего несколько синтаксических ошибок, из-за которых он не работает.
nr_lines = $(wc -l < file.txt)
nr_lines=$(wc -l < file.txt)
[$nr_lines -le 20]
[ $nr_lines -le 20 ]
touch file.txt echo "hello" > file.txt nr_lines=$(wc -l < file.txt) if [ $nr_lines -le 20 ]; then echo "number of lines is less than 20." fi
Когда вещи в bash не работают глупо синтаксические ошибки часто бывают:
'
"