${ }的用法

${ }的用法

假�O我��定�x了一���量�椋�
file=/dir1/dir2/dir3/my.file.txt
我��可以用 ${ } 分�e替�Q�@得不同的值:
${file#*/}:拿掉第一�l / 及其左�的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一�l / 及其左�的字串:my.file.txt
${file#*.}:拿掉第一�� . 及其左�的字串:file.txt
${file##*.}:拿掉最後一�� . 及其左�的字串:txt
${file%/*}:拿掉最後�l / 及其右�的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一�l / 及其右�的字串:(空值)
${file%.*}:拿掉最後一�� . 及其右�的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一�� . 及其右�的字串:/dir1/dir2/dir3/my
���的方法�椋�
# 是去掉左�(在�a�P上 # 在 $ 之左�)
% 是去掉右�(在�a�P上 % 在 $ 之右�)
�我环��是最小匹配�r���符�是最大匹配。

${file:0:5}:提取最左�的 5 ��字?:/dir1
${file:5:5}:提取第 5 ��字?右�的�B�m 5 ��字?:/dir2

我��也可以�ψ�量值�e的字串作替�Q:
${file/dir/path}:�⒌谝�� dir 提�Q�� path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:�⑷�部 dir 提�Q�� path:/path1/path2/path3/my.file.txt

利用 ${ } �可��Σ煌�的����B�x值(�]�O定、空值、非空值):
${file-my.file.txt} :假如 $file �榭罩担��t使用 my.file.txt 作默�J值。(保留�]�O定及非空值)
${file:-my.file.txt} :假如 $file �]有�O定或�榭罩担��t使用 my.file.txt 作默�J值。 (保留非空值)
${file+my.file.txt} :不管 $file �楹沃担�均使用 my.file.txt 作默�J值。 (不保留任何值)
${file:+my.file.txt} :除非 $file �榭罩担�否�t使用 my.file.txt 作默�J值。 (保留空值)
${file=my.file.txt} :若 $file �]�O定,�t使用 my.file.txt 作默�J值,同�r�� $file 定�x�榉强罩怠� (保留空值及非空值)
${file:=my.file.txt} :若 $file �]�O定或�榭罩担��t使用 my.file.txt 作默�J值,同�r�� $file 定�x�榉强罩怠� (保留非空值)
${file?my.file.txt} :若 $file �]�O定,�t�� my.file.txt �出至 STDERR。 (保留空值及非空值))
${file:?my.file.txt} :若 $file �]�O定或�榭罩担��t�� my.file.txt �出至 STDERR。 (保留非空值)

�有哦,${#var} 可�算出�量值的�L度:
${#file} 可得到 27 ,因�� /dir1/dir2/dir3/my.file.txt ��好是 27 ��字?...

接下?恚�榇蠹医樯砸幌 bash 的�M��(array)�理方法。
一般而言,A="a b c def" �@�拥淖�量只是�� $A 替�Q�橐���我坏淖执�,
但是改�� A=(a b c def) ,�t是�� $A 定�x�榻M��...
bash 的�M�堤�Q方法可�⒖既缦路椒ǎ�
${A[@]} 或 ${A

  • } 可得到 a b c def (全部�M��)
    ${A[0]} 可得到 a (第一���M��),${A[1]} �t�榈诙����M��...
    ${#A[@]} 或 ${#A

  • } 可得到 4 (全部�M��盗�)
    ${#A[0]} 可得到 1 (即第一���M��(a)的�L度),${A[3]} 可得到 3 (第一���M��(def)的�L度)
    A[3]=xyz �t是�⒌� 4 ���M�抵匦露��x�� xyz ...

    �T如此?的....



你可能感兴趣的:(正则)