Essa seria a diferença entre echo
in /bin/sh
vs. seu shell interativo. Sugiro usar printf
e ver O UNIX e o echo
.
Estou tentando criar um script de shell para usar um argumento e usá-lo para nomear uma guia de terminal. Portanto, se o nome do script for tabnm, tabnm "test" deve renomear a guia atual "test"
Este é o meu código:
#!/bin/sh
echo -ne "\e]1;$1\a"
mas quando eu executo eu recebo esta saída:
teste robin @ icarus $ sh tabnm.sh
-ne \ e] 1; teste
Se eu apenas executar echo -ne "\ e] 1; Test \ a" direto no shell, a guia será renomeada.
Essa seria a diferença entre echo
in /bin/sh
vs. seu shell interativo. Sugiro usar printf
e ver O UNIX e o echo
.
O problema é que o seu shell reconhece diferentes códigos de escape do que o seu /bin/sh
.
/bin/sh
provavelmente não reconhece \e
como o caractere de escape. Experimente 3
.
Você também pode substituir \a
pelo código equivalente %code%7
e ver se isso funciona.
Se você quer codificar para bash, você deve dizer em sua linha de shebang:
#!/bin/bash
echo -ne "\e]1;$1\a"