Когда я сегодня прочитал какое-то руководство, я пришел с такими утверждениями, как ${file?my.file.txt} и ${file:?my.file.txt} , что означает ${file?my.file.txt} и ${file:?my.file.txt} означают в скрипте Bash?
1 ответ
Из руководства - и всегда хорошо сначала это проверить:
${parameter:?word}Если
parameterравен нулю или не задан, расширениеword(или сообщение на этот счет, еслиwordотсутствует) записывается со стандартной ошибкой, и оболочка, если она не является интерактивной, завершается. В противном случае значениеparameterподставляется.
Таким образом, это защита от неустановленных переменных, где вы можете показать ошибку. Также,
Пропуск двоеточия приводит к проверке только для неустановленного параметра. Иными словами, если двоеточие включено, оператор проверяет наличие как параметра, так и того, что его значение не равно нулю; если двоеточие опущено, оператор проверяет только наличие.
Но, конечно, приведенные вами примеры несколько произвольны, и я удивляюсь, почему в учебнике они будут даже включены, не говоря уже о них, но не объяснят, что они делают.
