Заменить косую черту в пустую в bash - PullRequest
0 голосов
/ 15 ноября 2018

Предположим, у меня есть такие результаты:

CMD_VAL = 'test/'
echo $CMD_VAL
=> test/

echo "$CMD_VAL"|sed 's#/##g'
=>test

но

PRO_VAL = "$CMD_VAL"|sed 's#/##g'
echo $PRO_VAL

это возвращает

=> "test/ is a directory"

Как это нужно изменить, чтобы "тестировать" переменную как строку?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Нет необходимости порождать внешний процесс.cf этот шпаргалка для руководства по таким вещам, как использование встроенных в интерпретатор инструментов обработки строк.

$: CMD_VAL='test/'       # no spaces...
$: CMD_VAL=${CMD_VAL%/}  # strip the training slash
$: echo "$CMD_VAL"
test
0 голосов
/ 15 ноября 2018
PRO_VAL=$(echo $CMD_VAL|sed 's#/##g')

сначала нужно повторить, "$ CMD_VAL" | sed 's # / ## g "будет запускать $ CMD_VAL и передавать в sed, это не правильно.

...