У меня есть сценарий оболочки с этим кодом:
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'
;