Заголовок JMS Spring Integration 'приоритет' должен быть числом

Расширение (без каламбура) на ответы birryree's и halloleo: общий подход заключается в использовании eval, но он содержит некоторые важные предостережения, а именно пробелы и перенаправление вывода (>) в переменной. Кажется, что для меня работает следующее:

mypath="$1"

if [ -e "`eval echo ${mypath//>}`" ]; then
    echo "FOUND $mypath"
else
    echo "$mypath NOT FOUND"
fi

Попробуйте его с каждым из следующих аргументов:

'~'
'~/existing_file'
'~/existing file with spaces'
'~/nonexistant_file'
'~/nonexistant file with spaces'
'~/string containing > redirection'
'~/string containing > redirection > again and >> again'

Объяснение

  • ${mypath//>} удаляет > символы, которые могут сбивать файл во время eval.
  • eval echo ... - это то, что делает фактическое расширение тильды
  • Двойные кавычки вокруг аргумента -e предназначены для поддержки имен файлов с пробелами.

Возможно, есть более элегантное решение, но это то, что я смог придумать.

0
задан Justin Bertram 1 March 2019 в 03:42
поделиться