Почему foo = bar отличается от foo = bar? [дубликат]

Необработанное MIDI-устройство ALSA фактически не начинает считывать данные с оборудования до тех пор, пока не будет вызвана snd_rawmidi_read () . Это означает, что вы должны вызвать snd_rawmidi_read ( ) достаточно рано, иначе первые байт (ы) ответа могут быть потеряны.

Самый безопасный способ сделать это - вызвать snd_rawmidi_read () до отправки запроса. (См., Например, амиди .)

4
16.08.2017, 12:09
4 ответа

foo= bar: перед выполнением команды barназначьте fooпустым. Правильный способ: foo=barБез пробела после имени переменной и присвоенного значения.

2
27.01.2020, 20:45

В команде оболочки linux/unix, когда вы набираете foo=bar, вы помещаете строку bar в переменную foo. Для проверки вы можете ввести echo $foo, что должно вернуть barэто то, что содержит переменная foo

Когда вы набираете foo= barс пробелом, интерпретатор оболочки ничего не поместил в переменную foo и дескриптор bar как команду приложения через переменную PATH. Поскольку оболочка не нашла команду bar в переменной PATH, а вы используете дистрибутив Ubuntu, система спрашивает, хотите ли вы установить приложение bar. Это просто всплывающее сообщение, когда приложение не найдено. Вы можете проверить переменную PATH с помощью этой команды: echo $PATH. Подробнее об этой системной переменной Здесь

2
27.01.2020, 20:45

Когда вы делаете foo= bar, вы назначаете пустую строку переменной окружения foo, а затем выполняете команду bar. Его можно использовать для передачи переменных среды в новое выполнение.

Почему это отличается

Пробел — это символ-разделитель (используемый для разделения вещей): добавление пробела делает его двумя: foo=и bar. Первое — это задание, второе — указание bash найти файл и выполнить его. Первый не является обязательным, поэтому вы обычно видите только второй. Второй не является необязательным: если вы видите только присваивание, оно делает что-то немного другое, оно присваивается переменной оболочки (не переменной среды, если перед ней не стоит export).

4
27.01.2020, 20:45

Это синтаксис :Переменные Bash инициализируются значением, которое следует сразу после оператора присваивания =. Просто так оно и есть...

При выполнении foo= barвы назначаете пустую строку переменной fooи затем выполняете команду bar.

10
27.01.2020, 20:45

Теги

Похожие вопросы