Tôi có một kịch bản shell với mã này:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Nhưng mã điều kiện luôn luôn thực thi, bởi vì hg st
luôn in ít nhất một ký tự dòng mới.
- Có cách nào đơn giản để loại bỏ khoảng trắng từ
$var
(nhưtrim()
trong PHP ) không?
hoặc là
- Có một cách tiêu chuẩn để đối phó với vấn đề này?
Tôi có thể sử dụng sed hoặc AWK , nhưng tôi muốn nghĩ rằng có một giải pháp thanh lịch hơn cho vấn đề này.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Tuy nhiên, nếu bạn có một trích dẫn trong văn bản, bạn có thể làm như sau : echo " This i's a string of char " | xargs -0
. Lưu ý rằng tôi đề cập đến xargs mới nhất (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, tuy nhiên điều này sẽ test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- vì vậy phải có nhiều hơn chỉ là một dòng mới ở cuối.
echo $A | sed -r 's/( )+//g'
;