Как написано на банке. Вы создаете имя команды egrep '2019-05-11|Total'
, а затем пытаетесь ее вызвать. Это не egrep
, за которым следует параметр, а полное имя команды. То, что вы хотите, более вероятно:
totalSize=$(echo $s3ls| egrep "$currentDate|Total" | awk -F 'Total Size:' '{print $2}'|sed '/^$/d')
При необходимости вы можете использовать переменную для хранения параметра:
egrepParm="$currentDate|Total"
totalSize=$(echo $s3ls| egrep "$egrepParm" | awk -F 'Total Size:' '{print $2}'|sed '/^$/d')
Некоторые скажут, что в скрипте лучше использовать grep -E
вместоegrep
PS :Команда с псевдонимом будет работать в командной строке/терминале, но не в сценарии, поэтому попытка выполнить команду в терминале не является доказательством того, что она будет работать в сценарии. В bash используйте type {commandname}
, чтобы проверить, является ли имя реальной командой или псевдонимом. egrep
может быть реализован как псевдоним в некоторых версиях Unix, в моей Ubuntu это обычная команда.