Как да отрежа белите символи от променлива на Bash?
Имам скрипт на обвивката с този код:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Но условният код винаги се изпълнява, защото hg st
винаги отпечатва поне един символ за нов ред.
- Има ли прост начин за премахване на белите символи от
$var
(катоtrim()
в PHP)?
или
- Има ли стандартен начин за справяне с този проблем?
Мога да използвам sed или AWK, но ми се иска да мисля, че има по-елегантно решение на този проблем.
847
3
Bash разполага с функция, наречена разширяване на параметри, която, наред с други неща, позволява замяна на низове въз основа на така наречените шаблони (шаблоните приличат на регулярните изрази, но има съществени разлики и ограничения). [flussence's original line: Bash има регулярни изрази, но те са добре скрити:]
По-долу е показано как да премахнете всички бели полета (дори от вътрешността) от стойност на променлива.
Винаги съм го правил със sed
Ако има по-елегантно решение, надявам се някой да го публикува.
Можете да изтривате нови редове с помощта на
tr
: