Saya memiliki skrip shell dengan kode ini:
var=`hg st -R "$path"`
if [ -n "$var" ]; then
echo $var
fi
Tetapi kode kondisional selalu dijalankan, karena hg st
selalu mencetak setidaknya satu karakter baris baru.
- Apakah ada cara sederhana untuk menghapus spasi
$var
(sepertitrim()
dalam PHP )?
atau
- Apakah ada cara standar untuk menangani masalah ini?
Saya bisa menggunakan sed atau AWK , tetapi saya ingin berpikir ada solusi yang lebih elegan untuk masalah ini.
$ var=$(echo)
$ [ -n $var ]; echo $? #undesired test return
0
$ [[ -n $var ]]; echo $?
1
echo " This is a string of char " | xargs
. Jika Anda namun memiliki satu kutipan dalam teks Anda dapat melakukan hal berikut: echo " This i's a string of char " | xargs -0
. Perhatikan bahwa saya menyebutkan xarg terbaru (4.6.0)
test=`echo`; if [ -n "$test" ]; then echo "Not empty"; fi
, ini akan test=`echo "a"`; if [ -n "$test" ]; then echo "Not empty"; fi
- jadi harus ada lebih dari sekadar baris baru di akhir.
echo $A | sed -r 's/( )+//g'
;