Technology sharing

[Linux][Shell][Shell variables] explicatum est

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


1. Locus variables

  • Definire Testa variabilium, varia nomina addenda non indigent$
  • loci variabilisTantum valet in usoris current testa vita

2. Variabilis definitio

  • Nomen variabile iudicium: Ex litteris, numeris, et sapien.
  • Varia nomina sunt stricte casus-sensitiva

3. Get variabilis pretii

  • apostrophe: Quod vides , id est quod accipis , fortis quotation
  • Duplex quotes: omnia contenta in singulis notis output, peculiares notas recognoscendas, notas infirmas
  • Nullae quotes: Continua symbola sine scntentia notis esse possunt. Si spatia sunt, ambiguitas erit.
  • backtick: References mandatum exsecutionis effectus, aequalis$()Consuetudinem

4.Special variables

  • Variationes singulares testae, in scriptis et functionibus adhibitae, ut ambitum efficiant.

  • Sunt sequentes variabiles moduli speciales positionales:

    variabiliseffectus
    $0Accipere testa scriptor lima nomen et scriptor iter
    $nNth parametrum conchae scripturae obtine n{},sicut{$10}
    $#Get numerus parametri post supplicium testa script
    $*Omnes scripturae parametri parametri, sine virgulis, aequivalet$@Munus, plus quam auctoritas notarum "$*", isAccipit omnes parametri ut una chorda
    $@Sine notis, effectus idem est quod supraAccipite omnes parametri ut independens chordas

5.Special status variables

  • Quaerere modumman bash,QuaerereSpecial Parameters

    variabiliseffectus
    $?Redi valorem ultimi mandati executionis status, 0 verum est, non-0 est defecit
    $$Processus numerus current testa scriptor
    $!PID de ultimo background processum
    $_Get ultimum parametri ad ultimum imperium

6. Shells built-in varia imperia

1.echo

  • modulus
    • -n: Output content sine linea frangit
    • -e: Interpretare mores effugium
      • n: newline
      • r: Intra
      • ttab
      • b: backspace
      • v: Vertical tab character

2.eval

  • Officium: Facite multa mandata
  • Exemplumeval ls; cd ~

3.exec

  • Officium: Non efficies puerum processum et mandata sequentia exequaris.execPost executionem automaticeexit

7. Intercipe filum

  • grammatica

    grammaticaeffectus
    #Par brevissimum remove ab initio
    ##Remove par longissimum ab initio
    %Par brevissimam removere a fine
    %%Longissimum par removere a fine
    #Interceptio certa ratione contentus
    a*cPar filo incipiens cum a, quotcunque notis in medio, et desinentibus cum c
    ${变量}Redi valorem variabilis
    ${#变量}Redi longitudo varia, indoles longitudo
    ${变量:start}Ad mores refert post valorem variabilis offset
    ${变量:start:length}Extract characteribus finitum est longitudinem post offset
    ${变量#word}Ab initio variabilis dele brevissimam adaptationem verbi substring
    ${变量##word}Ab initio variabilis, dele longissimum verbum congruens
    ${变量%word}Aufer brevissimam matching verbum substring ex fine variabilis
    ${变量%%word}Removere longissimum matching verbum substring ex fine variabilis
    ${变量/pattern/string}Reponere primum matching forma cum filum
    ${变量//pattern/string}Reponere omnia exemplaria cum filum
  • Operatio exemplum: Delere lima nomen tuum

    # 通过⼦串的替换⽅式
    snowk@SnowKYP# f=stu_102999_1_finished.jpg
    
    # 变量的⼦串功能,去掉后缀
    snowk@SnowKYP# echo ${f//_finished/}
    stu_102999_1.jpg
    
    # 利⽤变量的反引⽤替换⽂件名
    snowk@SnowKYP# mv $f `echo ${f//_finished/}`
    
    # 剩下的⽂件,利⽤循环操作
    # 找出剩下所有需要替换的jpg⽂件
    snowk@SnowKYP# ls *fin*.jpg
    stu_102999_2_finished.jpg stu_102999_3_finished.jpg stu_102999_4_finished.jpg
    stu_102999_5_finished.jpg
    
    # 写shell循环代码,循环操作
    # 去掉所有jpg⽂件的_finished后缀
    snowk@SnowKYP# for file in `ls *fin*.jpg`;do mv $file `echo ${file//_finished/}`;done
    
    snowk@SnowKYP# ls *.jpg
    stu_102999_1.jpg stu_102999_2.jpg stu_102999_3.jpg stu_102999_4.jpg stu_102999_5.jpg
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

8. Special expansion testa variabilis processus

1. Grammatica

  • OfficiumHi quattuor variabiles extensae omnes pertinent ad iudicium et processus variabilium bonorum.
  • grammaticaparameter,参数,范围
    • ${parameter:-word}:siparameterValor variabilis inanis est, redituswordfilum
    • ${parameter:=word}:siparameterValor variabilis inanis est, ergowordReponit valorem variabilis et redit ad valorem
    • ${parameter:?word}:siparameterValor variabilis inanis est;wordasstderrOutput, aliter valorem variabilis output
      • Solebat errorem nuntium referre, cum error incidit ob variabiles et inanes.
    • ${parameter:+word}:siparameterSi valor variabilis inanis est, nihil, secuswordreditus

2. Application missionibus

  • Data tergum, scriptor notitia exspiravit delere
    # 原脚本命令,有bug,有歧义
    find ${file_path} -name '*.tar.gz' -type f -mtime +7 | xargs rm -f
    
    # 修正后的脚本命令
    # 如果有bug起义,就在当前目录搜索并执行删除
    find ${file_path:=/tmp} -name '*.tar.gz' -type f -mtime +7 | xargs rm -f
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6