Obecnie piszę framework testowania bash, który wymaga możliwie największej przenośności.Co jest bardziej przenośne? echo -e lub używając printf?
Tak więc, w pewnym momencie musiałem wydrukować pierwszy wiersz, a następnie tekst zawierający kilka rozszerzonych zmiennych. To jest rozwiązanie, którego użyłem.
echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"
Wydaje się, że to w porządku, ale nie jestem pewien, jak przenośne jest to w porównaniu do drukowania linii za pomocą np. printf
?
Jakieś pomysły lub wskazówki, w których mogłem znaleźć odniesienia?
Przez „przenośny” , masz na myśli przenośną między różnymi powłokami (co oznacza, że nie jest bash) lub między różnymi wersjami bash? –
Nie jest jasne, w jaki sposób struktura testowania bash musi być zgodna z cokolwiek innego niż bash. Sądzę, że twoim zdaniem niektóre systemy operacyjne nie mają printf i jako takie naprawdę nie są częścią basha, ale zapewniają niekompatybilność? Czy sprawdziłeś, ile kosztuje kompatybilność w pracy z implementacją autoconf i ./configure? Dlaczego nie tylko niektóre testy na górze, 'if [[! -f/bin/printf]]; echo -e "proszę mieć zainstalowany printf przed uruchomieniem reszty tego skryptu"; fi ?? Powodzenia. – shellter
Wierzę, że 'printf' jest technicznie jeszcze bardziej przenośny, ponieważ domyślne zachowanie' xpg_echo' może być różne w różnych platformach, nawet w Bashu (więc możesz go ustawić jawnie, jeśli naprawdę chcesz.) – ormaaj