#!/bin/bash # # audio is copyrighted by ubuntu-cl-foros-dev # audio is released under the General Public License Please refer to GPL.txt # Written by Desarrolladores Foros de Ubuntu Chile # https://launchpad.net/~ubuntu-cl-foros-dev # Sección del Foro seccion="Audio" # URL GrupoForo url_grupoforo="https://wiki.ubuntu.com/ChileanTeam/GrupoForo" url_foro="http://chile.ubuntuforums.org/" url_manual="https://wiki.ubuntu.com/ChileanTeam/ManualUbuntero" # codename de la versión de ubuntu instalada version=`lsb_release -ds`"("`lsb_release -cs`")"`uname -m` # Detectar el entorno de escritorio usado. if [ -n "$KDE_FULL_SESSION" ]; then DESKTOP="KDE" elif [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then DESKTOP="GNOME" elif [ `pidof xfce4-session` ]; then DESKTOP="Xfce" else DESKTOP="none" fi # identificador del archivo de salida hora=`date +%F-%s` # Archivo de salida file=$seccion"_"$hora.txt # Archivo temporal para filtrar con grep file_tmp=tempSC$hora # Nombre del usuario usuario=`whoami` # Funcion explicación del comando en archivo de salida explica (){ echo "# ""$1" >> $file } # Funcion para agregar una linea al archivo de salida agrega (){ while [ "$#" -gt "0" ] do # Agrega el argumento en una nueva línea al archivo de salida echo "$1" >> $file # Salta al siguiente argumento shift done } # Funcion para anotar el comando code (){ echo "[CODE]" >> $file echo "$ "$1 >> $file echo "[/CODE]" >> $file } # Funcion para anotar la salida del comando al archivo de salida # Argumento $1 : comando # Argumento $2...$N : filtro # Modo de uso: quote comando filtro quote (){ echo "[QUOTE]" >> $file # Caso no hay filtros if [ -z $2 ]; then $1 >> $file else # Caso donde hay filtros Argumento $2...$N # Por lo que se procede a crea un archivo temporal y luego aplicar los filtros # Aclaración: No fue posible usar una tubería para ejecutar el filtro # Ejecuta el comando y guarda la salida en archivo tmp $1 > $file_tmp # Imprime la salida y ejecuta el filtro # Salta el primer argumento que es un comando y pasa al primer filtro shift # Ciclo en que aplica los filtros while [ "$#" -gt "0" ] do # Aplica el filtro y guarda la salida en archivo de salida grep -i $1 $file_tmp >> $file # Salta al siguiente filtro shift done # Borra el archivo temporal rm $file_tmp fi echo "[/QUOTE]" >> $file } # Ejecución del script echo "###############################################################################" echo " " echo "Hola $usuario bienvenido al asistente de consultas en el foro Sección $seccion" echo "Actualemente estás usando la versión $version" echo "Tu entorno de escritorio es $DESKTOP" agrega "Información del Sistema relacionada a $seccion" agrega "Versión de Ubuntu: $version" agrega "Entorno de escritorio: $DESKTOP" agrega "#############################################################################" agrega "[B]Descripción del problema[/B]" agrega "Escribe aquí la descripción de tu problema con ubuntu..." agrega "#############################################################################" explica "Listar los dispositivos pci relacionados con audio:" code "lspci | grep -i audio" quote lspci Audio explica "Listar las Tarjetas disponibles con Alsa." code "asoundconf list" quote "asoundconf list" code "cat /proc/asound/cards" quote "cat /proc/asound/cards" explica "Listar los módulos o drivers de sonido cargados por el sistema." code "lsmod | grep -i snd" quote lsmod snd explica "Revisar que proceso está usando nuestro dispositivo de audio /dev/dsp:" code "lsof /dev/snd/*" quote "lsof /dev/snd/*" agrega " Origen Script ManualUbuntero: $url_manual" # Recomendación en la consola echo " " echo "Este programa a generado una consulta para publicar en el Foro revisa el archivo :" echo `pwd`"/"$file echo "puedes copiar y pegar su contenido en tu consulta en el Foro" echo " " echo " Más información de este script en:" echo " Foro de ubuntu-cl: $url_foro" echo " GrupoForo de ubuntu-cl: $url_grupoforo" echo " Origen Script ManualUbuntero: $url_manual" echo "##########################################################################" echo -n "¿Desea ver el contenido del archivo $file? [y/n]?" read RESP if [ "$RESP" = "y" ]; then sensible-browser $file & # 10 seg para que browser se abra, antes que el usuario termine el programa. sleep 10 else echo "Puedes revisar la información en el archivo en:" echo `pwd`"/"$file fi echo -n "Presione [ENTER] para terminar" read aux