Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
$
$()
UsoVariables especiales del shell, utilizadas en scripts y funciones para pasar parámetros.
Existen las siguientes variables de parámetros posicionales especiales:
variable | efecto |
---|---|
$0 | Obtenga el nombre del archivo del script de shell y la ruta del script |
$n | Obtenga el enésimo parámetro del script de shell. n está entre 1 y 9. Si es mayor que 9, algunos.{} ,como{$10} |
$# | Obtenga el número total de parámetros detrás del script de shell ejecutado |
$* | Obtener todos los parámetros del script de shell, sin comillas, es equivalente a$@ La función, más las comillas "$*", esRecibe todos los parámetros como una sola cadena |
$@ | Sin comillas, el efecto es el mismo que el anterior. Con comillas, es.Reciba todos los parámetros como cadenas independientes |
Método de búsqueda:man bash
,buscarSpecial Parameters
variable | efecto |
---|---|
$? | Valor de retorno del estado de ejecución del último comando, 0 es correcto, distinto de 0 falla |
$$ | El número de proceso del script de shell actual. |
$! | PID del último proceso en segundo plano |
$_ | Obtener el último parámetro del último comando |
-n
: contenido de salida sin saltos de línea-e
: Interpretar caracteres de escape n
: nueva línear
: Ingresart
:pestañab
:retrocesov
: Carácter de tabulación verticaleval ls; cd ~
exec
Después de la ejecución, automáticamente.exit
gramática:
gramática | efecto |
---|---|
# | Elimina la coincidencia más corta desde el principio. |
## | Elimina el partido más largo desde el principio. |
% | Elimina la coincidencia más corta del final. |
%% | Elimina el partido más largo del final. |
# | Intercepción de contenido de carácter específico. |
a*c | Coincide con una cadena que comienza con a, cualquier número de caracteres en el medio y termina con c |
${变量} | Valor de la variable de retorno |
${#变量} | Devuelve longitud variable, longitud de carácter |
${变量:start} | Devuelve el carácter después del valor de compensación de la variable. |
${变量:start:length} | Extraer caracteres limitados por longitud después del desplazamiento |
${变量#word} | Desde el principio de la variable, elimine la subcadena de palabras coincidentes más corta |
${变量##word} | Desde el principio de la variable, elimine la palabra coincidente más larga. |
${变量%word} | Elimine la subcadena de palabras coincidentes más corta del final de la variable |
${变量%%word} | Elimine la subcadena de palabras coincidentes más larga del final de la variable |
${变量/pattern/string} | Reemplace el primer patrón coincidente con una cuerda |
${变量//pattern/string} | Reemplazar todos los patrones con cuerda |
Ejemplo de operación: Eliminar nombre de archivo
# 通过⼦串的替换⽅式
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}
:siparameter
El valor de la variable está vacío, devuelveword
cadena${parameter:=word}
:siparameter
El valor de la variable está vacío, entoncesword
Reemplaza un valor de variable y devuelve su valor${parameter:?word}
:siparameter
El valor de la variable está vacío,word
comostderr
Salida; de lo contrario, salida del valor de la variable ${parameter:+word}
:siparameter
Si el valor de la variable está vacío, no haga nada; de lo contrarioword
devolver# 原脚本命令,有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