Почему я получаю сообщение, что команда не найдена для 'ls' при использовании '$?'?

В stackoverflow есть решение .

Здесь вы должны использовать:

sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g' file.txt > value.js

-2
16.07.2020, 20:35
2 ответа

$? — код возврата предыдущей команды. Если вы хотите увидеть это, вам нужно echo $?. Обычно он используется в утверждениях if(, где 0= true, к сожалению ).

0
18.03.2021, 23:19

Вы не получили сообщение «команда не найдена» для ls. Вы можете увидеть вывод lsпрямо здесь. Вы получили command not foundвместо 0, до чего расширяется $?.

$?— статус предыдущей команды. После запуска lsстатус равен 0, так как ошибок не было. После запуска goodстатус равен 127, который используется оболочками, когда команда не найдена.

Если вы хотите отобразить статус, вам нужно указать оболочке, что вы хотите отобразить его. Именно для этого предназначена команда echo.

good; echo $?
ls; echo $?
2
18.03.2021, 23:19

Теги

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