Mam problem z tym, że mój skoroszyt działa z użyciem odsunięć. Oto przykład wersja skryptu Mam problem z:Problem z odsunięciami w powłoce shellscript
#!/bin/sh
ECHO_TEXT="Echo this"
ECHO_CMD="echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'"
result=`${ECHO_CMD}`;
echo $result;
result=`echo ${ECHO_TEXT} | awk -F' ' '{print \$1}'`;
echo $result;
Wyjście z tego skryptu jest:
sh-3.2$ ./test.sh
Echo this | awk -F' ' '{print $1}'
Echo
Dlaczego najpierw lewy apostrof przy użyciu zmiennej dla polecenia nie faktycznie wykonać pełne polecenie, ale zwraca tylko wynik pierwszego polecenia wraz z drugim poleceniem? Brakuje mi czegoś, aby uzyskać pierwszy backtick do wykonania polecenia?
backticks są strasznie przestarzałe i nie powinien być stosowany dłużej - używając '$()' zamiast pozwoli Ci zaoszczędzić wiele bóle głowy – Daenyth
Patrz [BashFAQ/050] (http://mywiki.wooledge.org/BashFAQ/050) (nie wpisuj poleceń w zmiennych) i [BashFAQ/048] (http://mywiki.wooledge.org/ BashFAQ/048) (unikaj używania 'eval'). Twój Shebang mówi "#!/Bin/sh", a twój monit mówi "sh", ale twój tag pytający mówi "[bash]", co nie jest tym samym. –
Nie ustawiłem tagu bash, inny użytkownik zmienił to po tym, jak to opublikowałem. – benw