У меня странная проблема с bash
под macos. Когда я объединяю две переменные, между ними добавляется дополнительный пробел, от которого я не могу избавиться.
~/testdrive/dir1 $ curd=$(pwd)
~/testdrive/dir1 $ echo $curd
/xx/xx/testdrive/dir1
~/testdrive/dir1 $ fcount=$(ls -l | wc -l)
~/testdrive/dir1 $ echo $fcount
5 # notice no space in front of the 5
~/testdrive/dir1 $ echo $curd$fcount
/xx/xx/testdrive/dir1 5 # space between directory name and 5
Я использую GNU bash, версия 5.0.16 (1) -релиз (x86_64-apple) -darwin19.3.0). Я попробовал newd = "$ curd $ fcount" и newd = $ {curd} $ {fcount} с тем же результатом. В некоторых каталогах между переменными добавляется 5 или более пробелов.
Однако,
~/testdrive/dir1 $ var1=abc
~/testdrive/dir1 $ var2=def
~/testdrive/dir1 $ echo $var1$var2
abcdef # expected behavior
Затем, опять же,
~/testdrive/dir1 $ echo $var1$fcount
abc 5 # space between
Я видел много советов о том, как удалить пробелы из строк, однако я не понимаю, почему он там, в первую очередь. Я предполагаю, что это связано с fcount=$(ls -l | wc -l)
, но как? Есть идеи?