Используйте echo
вместо cat
, так как ваш $check
является переменной. Используйте, как показано ниже
check=$(ssh user@somesystem.com "/usr/local/bin/check_mq.sh")
ret=$?
cat=/bin/cat
awk=/usr/bin/awk
output=$(echo $check | $awk -F= '{print $4}' | $awk '{print $1}')
echo $output
Как видно из включенного режима verbose в strace (-v
), эти вызовы getdents возвращали d_type=DT_REG
на первой системе, но на второй d_type=DT_UNKNOWN
. Причина этого в том, что хотя в первом случае используется файловая система ext4
, во втором — prl_fs
. prl_fs
сама файловая система, по-видимому, не возвращает известный d_type
.
Это вызывает пограничный случай в функции glob ()в glibc. Для этого сообщалось об ошибке glibc наhttps://sourceware.org/bugzilla/show_bug.cgi?id=25659
Я также связался со службой поддержки Parallels и попросил их прекратить возвращать DT _UNKNOWN как тип d _. Начиная с Parallels 16.5.0 -49183, они исправили это:)