У меня следующий вопрос:команда Bash (если заявление) Терминал
if [ (airport en1 -s|awk 'END{print NR—}’) -lt 11]; then
open ~/Desktop/1-10.mp3
else if -ge 10 -lt 15
then ~/Desktop/11-14.mp3
else if -ge 14 -lt 18
then ~/Desktop/15-17.mp3
else if -ge 17 -lt 21
then ~/Desktop/18-20.mp3
else if -ge 20 -lt 24
then ~/Desktop/21-23.mp3
else if -ge 23 -lt 27
then ~/Desktop/24-26.mp3
else if -ge 26 -lt 30
then ~/Desktop/24-27.mp3
else if -ge 29 -lt 36
then ~/Desktop/30-36.mp3
else if -ge 35 -lt 41
then ~/Desktop/36-40.mp3
fi
В основном я хочу, чтобы это отсканировать сколько wifis есть Airport en1 -s)
Тогда я позволю это рассчитывать без первой линии |awk 'END{print NR—}’
, а затем я имеют ряд команд if, которые мне все необходимы, чтобы получить более чувствительный результат. Но сейчас это не работает.
Может ли кто-нибудь помочь мне, пожалуйста? (да и я уже читал Баш учебник ...)
Как насчет «не работает»? Во-первых, чтобы выполнить команду и использовать ее результат, вы хотите '$ (...)' не просто '(...)', а также следить за «умными кавычками», как будто кажется, что у вас может быть в первом 'if', так как они не анализируют право в' bash', а также вам нужно пробел перед закрывающим ']', в белом пространстве нет необязательного. Кроме того, посмотрите на 'elif', а не на все вложенные' else if', для каждой из которых потребуется закрытие 'fi' –
. Среди других проблем вы, похоже, считаете, что второе и последующие сравнения будут неявно использовать значение из первого. Они не будут. –
Хорошо, я понимаю, что вы имеете в виду. Но как я могу это сделать? – shirinmalina