set -x: tab Завершение результатов беспорядочный вывод при работе в режиме отладки

Вы можете использовать sed

sed -n '666p' somefile

или

sed '666!d' somefile

Или в больших файлах

sed '666q;d' somefile 

В сценарии bash

#!/usr/bin/bash
line=666
sed "$line"'q;d' somefile
4
27.02.2018, 23:24
1 ответ

Esto se debe a la función de finalización programable del shell que está utilizando.

Si está satisfecho con la finalización básica de pestañas para comandos y nombres de archivo en bash, ejecute

complete -r

en su ~/.bashrceliminará cualquier finalización programable )"elegante" (que involucre funciones de llamada, etc. en el entorno del shell actual.

La finalización básica del nombre de archivo (como lo que está haciendo en los ejemplos de su pregunta )seguirá funcionando después de desactivar la finalización programable.

La finalización programable está disponible en algunos shells y permite conectar funciones de devolución de llamada que examinan el estado de la línea de comando, etc. para averiguar cuáles podrían ser las posibles cadenas que el usuario podría querer insertar a continuación. Por ejemplo, escribir sshy luego Espacio y Tabulador puede invocar una función que analiza su archivo ~/.ssh/configen busca de posibles nombres de host para conectarse, o escribir git checkouty luego Espacio y Tabulador puede hacer que una función ejecute un comando gitpara averiguar qué ramas están disponibles en el repositorio actual.

Algunos usuarios confían en las finalizaciones programables por razones de velocidad y/o productividad, pero sí, si tiene set -xactivo en la sesión de shell interactiva, estas acciones producirían una salida de seguimiento en la terminal.


Nunca he sido amigo de la finalización programable en ningún shell, ya que no quiero una simple pulsación del tabulador para hacer "magia a mis espaldas" en todo tipo de formas interesantes . También creo que es un poco flojo, pero definitivamente esa es solo mi opinión personal.

4
27.01.2020, 20:55

Теги

Похожие вопросы