Как вырезать все табуляции и пробелы в оболочке Linux? - PullRequest
1 голос
/ 24 марта 2011

У меня есть файл .sh:

test -e "$APP_SERVER_HOME"

if [ $? != 0 ]; then

   echo "Application server home $APP_SERVER_HOME does not exist"

   exit 6

fi

Как вырезать все пробелы и табуляции из переменной APP_SERVER_HOME перед тестовой командой?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011
APP_SERVER_HOME=`echo "$APP_SERVER_HOME" |sed 's/\s//g'`

Это то, что вы хотите?

Примечание. Если он содержал «C: \ Program Files \ Foo \ bar.exe», теперь он будет содержать «C: \ ProgramFiles \ Foo \ bar».exe ", что, вероятно, не то, что вы хотите.

APP_SERVER_HOME=`echo "$APP_SERVER_HOME" |sed 's/^\s\+//' |sed 's/\s\+$//'`

Этот просто обрезает начальные и конечные пробелы, а не внутренние пробелы.

2 голосов
/ 24 марта 2011

Вы также можете сделать это, используя подход расширения параметров оболочки (, описанный здесь ):

shopt -s extglob

${APP_SERVER_HOME##+([[:blank:]])}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...