Zřetězení řetězců může být důležitou součástí použití jakéhokoli programovacího jazyka pro praktické aplikace.
Řetězce můžete zřetězit i v bash. Není zde žádný operátor zřetězení. Stačí napsat řetězce jeden po druhém a spojit řetězce v Bash.
concat_string="$str1$str2"
Nebojte se! Ukážu vám různé skutečné příklady zřetězení řetězců v bash.
Přiřazení zřetězených řetězců
V Bash nejsou žádné datové typy jako ve většině programovacích jazyků. Ale stále můžete deklarovat proměnné v Bash.
Zde je návod, jak přiřadit řetězce v Bash:
[email protected]:~$ w='Welcome'
Pomocí příkazu printf můžete vytisknout hodnotu této řetězcové proměnné:
[email protected]:~$ printf "$w\n"
Welcome
Vytvoříme další řetězce:
[email protected]:~$ t='To'
[email protected]:~$ l='Linux'
[email protected]:~$ h='Handbook!'
Chci zkombinovat všechny tyto řetězcové proměnné do jediné. Jak to udělat?
[email protected]:~$ tony="${w} ${t} ${l} ${h}"
Tímto způsobem jsem zřetězil všechny čtyři řetězce do jediné proměnné a nazval ji tony
. Všimněte si, že jsem mezi proměnné přidal mezeru.
Pojďme rychle potvrdit, že řetězce byly zkombinovány:
[email protected]:~$ printf "$tony\n"
Welcome To Linux Handbook!
Zde je vše ve skriptu Bash:
#!/bin/bash
w='Welcome'
t='To'
l='Linux'
h='Handbook'
tony="${w} ${t} ${l} ${h}"
printf "${tony}\n"
Vytvořte jej spustitelný a spusťte jej jako skript:
[email protected]:~$ chmod +x concat.sh
[email protected]:~$ ./concat.sh
Welcome To Linux Handbook!
Složené závorky {} kolem názvů proměnných nejsou při zřetězení řetězců povinné. Aby však byly věci jasné a chránily je před okolními postavami, je dobré je zabalit do {}. Připojit k řetězci v bash
Výše uvedený příklad kombinuje různé řetězce do jednoho.
Vezměme si jiný scénář. Řekněme, že chcete připojit k již existujícímu řetězci. Jak to udělat? Používáte nádherný operátor +=.
str="iron"
str+="man"
Dokážete uhodnout novou hodnotu str
? Ano! Je to ironman
.
[email protected]:~$ str="iron"
[email protected]:~$ str+="man"
[email protected]:~$ echo $str
ironman
To je užitečné, když používáte smyčky v bash. Vezměte si například tuto smyčku for:
#!/bin/bash
var=""
for color in 'Black' 'White' 'Brown' 'Yellow'; do
var+="${color} "
done
echo "$var"
Pokud spustíte výše uvedený skript, připojí se k řetězci po každé iteraci.
Black White Brown Yellow
Zřetězení čísel a řetězců
Jak jsem již zmínil, v Bash nejsou žádné datové typy. Řetězce a celá čísla jsou stejná, a proto je lze snadno spojit do jednoho řetězce.
Podívejme se na další příklad prostřednictvím druhého skriptu. Tentokrát použiji číslo:
#!/bin/bash
we='We'
lv='Love'
y='You'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
printf "${stark}\n"
Provedení:
[email protected]:~$ chmod +x morgan.sh
[email protected]:~$ ./morgan.sh
We Love You 3000!!!
Vnořené zřetězení řetězců
Tyto dva zřetězené řetězce můžete také uložit do třetího pomocí vnořeného zřetězení:
#!/bin/bash
w='Welcome'
t='To'
l='Linux'
h='Handbook'
tony="${w} ${t} ${l} ${h}"
we='We'
lv='Love'
y='You'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
ironman="${tony}..${stark}"
printf "${ironman} Forever!\n"
Když spustíte tento skript shellu, uvidíte tento výstup:
Welcome To Linux Handbook..We Love You 3000!!! Forever!
Závěr
Pokud jste se skriptováním v shellu noví, vřele doporučuji naši sérii výukových programů Bash pro začátečníky.
Doufám, že vám tento krátký návod pomohl při zřetězení bash strun. Máte-li dotazy nebo návrhy, neváhejte zanechat komentář níže.