Сценарий Bash заканчивается в команде grep

Самый простой способ отображения объекта для целей отладки:

console.log("data",data) // lets you unfold the object manually

Если вы хотите отобразить объект в DOM, вы должны учитывать, что он может содержать строки, которые будут интерпретироваться как HTML. Поэтому вам нужно выполнить некоторые escape-функции ...

var s = JSON.stringify(data,null,2) // format
var e = new Option(s).innerHTML // escape
document.body.insertAdjacentHTML('beforeend','
'+e+'
') // display

1
задан Magnus Melwin 13 July 2018 в 07:55
поделиться

1 ответ

Команда grep возвращает статус выхода 1, чтобы указать, когда строки не совпадают, и это приводит к сбою назначения переменной. Лучше выполнить команду непосредственно в скрипте, а затем использовать $?.

Измените логику своего скрипта, чтобы вы могли напрямую использовать статус:

grep -iwo 'disabled' $HOME/$MYHOST-$MYTIMESTAMP/$MYHOST-$MYTIMESTAMP-anyquery.txt
if [[ $? = 0 ]];
2
ответ дан Nick 17 August 2018 в 13:23
поделиться
  • 1
    if по определению запускает команду и проверяет ее код выхода, чтобы решить, следует ли использовать ветвь then или ветвь else. Все, что выглядит как command; if [ $? = 0 ], лучше написано if command, и вам, как правило, почти никогда не нужно напрямую изучать $?. – tripleee 13 July 2018 в 09:10
  • 2
    Ах да, имеет смысл. Ty triplee для ввода. – Magnus Melwin 13 July 2018 в 09:50
  • 3
    Сделать код более читаемым, разделив, как я, не следует сбрасывать со счетов. – Nick 13 July 2018 в 09:51
  • 4
    Тай Ник, помни об этом. – Magnus Melwin 13 July 2018 в 09:53
  • 5
    @Nick Это не более читаемо, просто сложнее. – tripleee 13 July 2018 в 13:21