Переменная переменная Если новое определение непустое

Я бы сделал что-то вроде:

ls -1 | grep "\.png$" | xargs -L 50 rm -f 

Это сопоставит (и удалит) только файлы, заканчивающиеся на .png .

0
12.09.2018, 01:12
2 ответа

Если вы хотите действовать, только если строка не -пуста, используйте параметр по умолчанию при ссылке на переменную:

master="$(read_json -f.vcs.json -k git.master)"

Если команды подоболочки не возвращают вывод, переменные будут нулевыми. Затем вы можете использовать это с заменой по умолчанию:

do-a-thing "${master-master}" # if 'master' is null, use the default value 'master'
                              # otherwise, use the contents of the variable
2
28.01.2020, 02:31

Я бы перевернул логику:

# Note that the variables 'master' and 'integration' are NOT defined yet
if [ -f '.vcs.json' ]; then
  master="${`read_json -f.vcs.json -k git.master`:-master}"
  integration="${`read_json -f.vcs.json -k git.integration`:-integration}"
fi
# Set default values if empty or missing
: ${master:=master} ${integration:=integration}
# They are now guaranteed to be non-empty
echo $master $integration
0
28.01.2020, 02:31

Теги

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