У мене є сценарій оболонки з цим кодом:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Але умовний код завжди виконується, тому що hg st
завжди друкується принаймні один символ нового рядка.
- Чи є простий спосіб позбавити пробіл
$var
(наприклад,trim()
у PHP )?
або
- Чи існує стандартний спосіб вирішення цього питання?
Я міг би використовувати sed або AWK , але хотілося б подумати, що існує більш елегантне рішення цієї проблеми.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Однак , якщо ви маєте апостроф в тексті ви можете зробити наступне: echo " This i's a string of char " | xargs -0
. Зауважимо, що я згадую про останні xargs (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, однак це буде test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- тому в кінці повинно бути більше, ніж просто новий рядок.
echo $A | sed -r 's/( )+//g'
;