The read shell builtin is the proper way to read single lines. Also, simplify grep(1) and awk(1) invocations and use a single awk(1) expression, that supports extracting file names with spaces, instead. Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de> --- checkpkg | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/checkpkg b/checkpkg index f408267..2f442c9 100755 --- a/checkpkg +++ b/checkpkg @@ -81,7 +81,7 @@ for _pkgname in "${pkgname[@]}"; do mkdir -p pkg cd pkg bsdtar xf ../"$pkgfile" > /dev/null - for i in $(diff "../filelist-$_pkgname-old" "../filelist-$_pkgname" | grep \> | grep '\.so' | awk '{print $2}'); do + diff "../filelist-$_pkgname-old" "../filelist-$_pkgname" | awk '/>.*\.so/{$1 = ""; print $0}' | while read i; do echo "${i}: " "$(objdump -p "$i" | grep SONAME)" done cd .. -- 1.7.6