Я проверяю вывод некоторых команд оболочки в golang. Мне нужно проверить, содержит ли вывод мою входную строку.
//myinput is a valid string
stdoutput2,stderr2,err2 := Shellout("some valid shell command | grep "+myinput)
if(err2!=nil){
glg.Error("Not able to retrive information from system")
glg.Error(err2)
return false
} else if strings.Contains(strings.TrimSpace(stdoutput2),myinput){
glg.Info("able to retrive information from system")
return true
} else {
glg.Error("Not able to retrive information from system")
glg.Error("stdoutput2 after trimming is-->"+strings.TrimSpace(stdoutput2))
glg.Error("myinput is :"+myinput)
glg.Error("std error is :"+stderr2)
return false
}
Здесь, хотя stdoutput2 содержит значение myinput, условие my else если не выполняется.
Окончательный вывод
Невозможно получить информацию из системы. stdoutput2 после обрезки - -> Name = customcsi-b35f3ea733 myinput: customcsi-b35f3ea733
Обратите внимание на пробел между именем и символом =. Это часть вывода.
Пожалуйста, помогите в решении этой проблемы. Моя golang версия 1.13.5
Любая помощь будет высоко ценится.