Tengo una función que convierte el tiempo de época a la fecha. Aquí está la definición
date1(){
date -d @$1
}
Me gustaría poder escribir:
$ date1 xxxyyy
Donde xxxyyy es el parámetro que paso a mi función para poder obtener la fecha correspondiente. Entiendo que tengo que añadir que, ya sea en .bash_profile
, .profile
o .bashrc
ya continuación la fuente él:
$ source file
Pero no estoy seguro de en qué archivo colocarlo. Actualmente, lo tengo .profile
. Pero para ejecutarlo, tengo que hacerlo source .profile
todo el tiempo.
Idealmente, debería estar disponible cuando la computadora se inicia como la variable de entorno.
Respuestas:
De
man bash
:En otras palabras, puede ponerlo en cualquiera de
~/.bash_profile
,~/.bash_login
o~/.profile
, o cualquier archivosource
d por cualquiera de esos . Por~/.profile
lo general , la fuente~/.bashrc
, que es el "archivo de inicialización personal, ejecutado para shells de inicio de sesión".Para habilitarlo, inicie un nuevo shell, ejecute
exec $SHELL
o ejecutesource ~/.bashrc
.fuente
.bash_profile
, también tengo que hacerlosource ~/.bash_profile
cada vez que abro el terminal mediante un acceso directoCtrl+Alt+T
.source ~/.bash_profile
cada vez, entonces eso es una indicación de que su configuración de Bash de alguna manera no es estándar o está rota (según laman bash
salida mencionada). ¿Estás seguro de que realmente estás ejecutando Bash? Por ejemplo, ¿echo $BASHPID
imprime algo?#!/bin/sh
al principio de.profile
para definir una función?Después de definir la función en su
.profile
, agregueexport -f date1
. Esto exportará la función para que la use su shell de inicio de sesión.fuente
Entra en personalizaciones para shells interactivos
~/.bashrc
. Las cosas que desea ejecutar cuando inicia sesión entran~/.profile
(o~/.bash_profile
, pero a menudo no se cargan al iniciar sesión gráficamente).Ponga esta definición de función en
~/.bashrc
.Como bash no se carga
.bashrc
cuando es un shell de inicio de sesión, forzarlo a hacerlo: escriba un~/.bash_profile
contenedores decir
~/.profile
, cargar , y también cargar~/.bashrc
si el shell es interactivo.Ver Alternativa a .bashrc y las publicaciones vinculadas allí.
fuente
csh y tcsh no admiten funciones como bash, pero puedes hacerlo.
Por ejemplo, aquí hay una función simple para imprimir texto
pasar argumentos al guión
hacer código de varias líneas como una declaración if es un poco complicado, pero aquí tienes.
aún tendrá que evaluar, pero la parte más compleja es hacer la
\!:[x]
sintaxis para obtener la entrada desde la línea de comandos.Eso debería ser suficiente para resolverlo.
fuente
Puede redirigir todas las funciones actuales a bashrc con typeset .
Por ejemplo, así es como estoy agregando una función de un comando openstack con parámetro opcional, en bashrc:
Ahora se guarda para futuras sesiones y se puede usar como:
o
fuente
punto 18: En mi memoria anterior cuando un administrador, aprender ksh y bash era lo contrario. 1: - / etc / los contenidos del perfil son sysWide. / etc / skel contenía el archivo dado a las nuevas cuentas. Desde Bash ahora primo común de toda distro. el siguiente sería 2: - ~ / .profile como estándar del sistema, entonces dentro del contenido de .profile "si existe" .bash_profile pondría -> 3: - .bash_profile 4: - .bash_login 5: -. bashrc .bash_aliases estaría en Me parece el orden más correcto, configurar el entorno estándar de Terminal y Shell y .bash_login habitual nunca encontrado o existente (es personalizado por usuario). Con .profile $ PATH siendo principal si el.
Estoy descubriendo que ahora también agrego .bash_profile .profile todavía domina y no respeta la presencia de .bash_profile. Junto con la información del encabezado, nadie está actualizando, es decir: bash startup Samples - esa estructura de directorios ya no está más - junto con ejemplos y / o archivos están comprimidos. Así que la actualización a Gnu-Bash está en orden
fuente