minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
$
$()
UsoVariáveis especiais do shell, usadas em scripts e funções para passar parâmetros.
Existem as seguintes variáveis de parâmetros posicionais especiais:
variável | efeito |
---|---|
$0 | Obtenha o nome do arquivo do script shell e o caminho do script |
$n | Obtenha o enésimo parâmetro do shell script n está entre 1 e 9. Se for maior que 9, algum.{} ,como{$10} |
$# | Obtenha o número total de parâmetros por trás do script de shell executado |
$* | Obtenha todos os parâmetros do shell script, sem aspas, equivale a$@ A função, mais as aspas "$*", éRecebe todos os parâmetros como uma única string |
$@ | Sem aspas, o efeito é o mesmo que acima. Com aspas, é.Receba todos os parâmetros como strings independentes |
Método de pesquisa:man bash
,procurarSpecial Parameters
variável | efeito |
---|---|
$? | Valor de retorno do status de execução do último comando, 0 está correto, diferente de 0 falhou |
$$ | O número do processo do script de shell atual |
$! | PID do último processo em segundo plano |
$_ | Obtenha o último parâmetro do último comando |
-n
: Conteúdo de saída sem quebras de linha-e
: Interpretar caracteres de escape n
: nova linhar
: Digitart
:abab
:backspacev
: Caractere de tabulação verticaleval ls; cd ~
exec
Após a execução, automaticamenteexit
gramática:
gramática | efeito |
---|---|
# | Remova a correspondência mais curta desde o início |
## | Remova a partida mais longa desde o início |
% | Remova a correspondência mais curta do final |
%% | Remova a partida mais longa do final |
# | Interceptação de conteúdo de caractere especificado |
a*c | Corresponde a uma string começando com a, qualquer número de caracteres no meio e terminando com c |
${变量} | Valor da variável de retorno |
${#变量} | Retornar comprimento variável, comprimento de caracteres |
${变量:start} | Retorna o caractere após o valor de deslocamento da variável |
${变量:start:length} | Extraia caracteres limitados por comprimento após deslocamento |
${变量#word} | Desde o início da variável, exclua a substring da palavra correspondente mais curta |
${变量##word} | Desde o início da variável, exclua a palavra correspondente mais longa |
${变量%word} | Remova a substring da palavra correspondente mais curta do final da variável |
${变量%%word} | Remova a substring da palavra correspondente mais longa do final da variável |
${变量/pattern/string} | Substitua o primeiro padrão correspondente por string |
${变量//pattern/string} | Substitua todos os padrões por string |
Exemplo de operação: Excluir nome do arquivo
# 通过⼦串的替换⽅式
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
parameter,参数,范围
${parameter:-word}
:separameter
O valor da variável está vazio, retorneword
corda${parameter:=word}
:separameter
O valor da variável está vazio, entãoword
Substitui um valor de variável e retorna seu valor${parameter:?word}
:separameter
O valor da variável está vazio,word
comostderr
Saída, caso contrário, saída do valor da variável ${parameter:+word}
:separameter
Se o valor da variável estiver vazio, não faça nada, caso contrárioword
retornar# 原脚本命令,有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