Veja as capturas de tela: alguns dos menus estão em japonês e um está em polonês.
Como posso mudar o idioma de todos esses menus para polonês? Tenho um layout de teclado japonês instalado e preciso dele, então "apenas desinstalar" não é uma opção.
Tenho duas imagens (de um esquema) e quero destacar as diferenças em uma delas:
Usando o imagemagick posso criar a diferença visual e também posso sobrepô-la à segunda imagem:
compare schematic.png schematic-new.png -compose src diff.png
composite -blend 35% diff.png schematic-new.png schematic_diff.png
Isso fornece quase o que eu quero, mas as partes na imagem diff que são as mesmas não são totalmente transparentes, mas têm uma cor acinzentada semitransparente. Também blend
não é a coisa certa a fazer, pois adiciona transparência à imagem base também.
Então: como posso criar a imagem diff para que as partes não diff fiquem totalmente transparentes e como sobrepô-la corretamente na imagem base (talvez até com transparência personalizada)?
Estou procurando uma solução para pesquisar o histórico com peixes quando seu histórico está cheio de comandos longos. Muitas vezes tenho comandos curl que contêm cargas json em meu histórico que desejo repetir, por exemplo, e são longos o suficiente para não caberem em uma única linha, o que torna muito difícil diferenciá-los rapidamente . Minha solução atual é digitar mais do que eu quero, mas é muito chato.
Existe uma maneira de fazer com que as entradas do histórico apareçam conforme foram executadas, sem reduzi-las a uma única linha? Existe uma solução mais inteligente que não estou pensando em pedir?
Quero escrever um script de shell (zsh) que faça o seguinte:
.zshrc
.Eu encontrei a seguinte solução:
# Installing Anaconda
if [ ! -d /opt/homebrew/Caskroom/anaconda ]; then brew install --cask anaconda; fi
# This adds conda to your PATH in .zshrc and makes sure that you can now use conda and activate conda environments
/opt/homebrew/anaconda3/bin/conda init zsh
# Sourcing zshrc
exec zsh
# Update conda base environment
conda update -n base -c defaults conda
O problema é que isso exec zsh
substitui o shell atual, então a atualização do conda não acontece.
Existe uma solução melhor para o problema?
which shutdown
retorna
/usr/bin/shutdown
Eu também tentei sudo which shutdown
por precaução ... mas obtive o mesmo resultado.
Eu posso ver isso
lrwxrwxrwx 1 root root 9 Dec 13 03:38 /usr/bin/shutdown -> systemctl
Também posso fazer algo como (desligar a máquina em 2 horas)
sudo shutdown -h +120
Mas se eu tentar algo bobo como isto:
sudo systemctl -h +120
Eu recebo um erro...
Quando emito, shutdown
estou realmente invocando o /usr/bin/shutdown
? Em caso afirmativo, como o link do desligamento para o systemctl realmente funciona?
Estou lendo os primeiros quatro bytes de um arquivo binário em zsh. Os primeiros 3 bytes são 0x00
e o quarto é 0x01
. Eu criei uma matriz desses bytes lendo o arquivo como uma string e, em seguida, dividindo-o e fatiando-o, resultando em:
> echo -n "${(j::)bytes}" | xxd
00000000: 0000 0001 ....
e agora estou tentando adicioná-los começando com a extremidade direita (4º byte) usando as potências apropriadas para obter a soma. O problema é que, quando tento usar o 4º byte em uma avaliação aritmética ou uma variável inteira:
integer -i 10 b=${bytes[-1]} # This is the offending line
sum=$((sum + b * (256 ** i)))
Estou tendo o erro a seguir:
bad math expression: illegal character: ^A
Qual é 0x01
.
Como digo ao zsh para interpretar o byte como um número? Eu notei o (#)
sinalizador de expansão, que força uma expressão a ser interpretada numericamente e depois como um caractere, mas estou tendo o problema oposto. Parece estar interpretando 0x01
como um personagem.
ATUALIZAR:
Desconfio que o problema seja que o tipo do array seja de caracteres (se as coleções zsh tiverem tipos? (s::)
) elementos de volta para números inteiros. Eu tentei
b=$(printf '%d' "$bytes[4]")
mas isso me dá um erro semelhante. Eu sou capaz de reproduzir aparentemente através de qualquer um destes:
printf '%d' $'^A'
integer b=$'^A'
onde ^A
é composto pelos dois caracteres literais ^
e A
.
Suponha que meu arquivo se pareça com isto:
foo bar
foo bar bar
foo foo bar foo
O que eu quero fazer é excluir todos os foo
que são seguidos por um bar
(ou seja, há apenas espaços em branco entre eles), sem alterar nenhum espaço em branco. Abaixo, substituí todos os caracteres que devem ser excluídos por sublinhados para deixar isso claro:
___ bar
___ bar bar
foo ___ bar foo
O comando deve resultar no seguinte arquivo:
bar
bar bar
foo bar foo
Como eu poderia conseguir isso com sed ou awk?
Estou tentando alterar o local padrão dos arquivos de cache de conclusão zsh no macOS. Eu li a documentação do zsh após a conclusão, que diz "alternativamente, um nome de arquivo explícito pode ser fornecido por 'compinit -d dumpfile'". Eu configurei a variável ZCOMPCACHE e continuei com o seguinte código:
ZCOMPCACHE="$HOME/.cache/zsh/zcompcache"
# Create the parent directory if it doesn't exist
[[ -d $ZCOMPCACHE ]] || mkdir -p $ZCOMPCACHE
# Set the custom location for zcompdump files
_comp_files=($HOME/.cache/zsh/zcompcache(Nm-20))
if (( $#_comp_files )); then
compinit -i -C -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
else
compinit -i -d "$HOME/.cache/zsh/zcompcache/.zcompdump-${ZSH_VERSION}"
fi
# `unset` the temporary variable
unset _comp_files
O código funciona e cria o diretório zcompcache em .cache/zsh e despeja o arquivo de cache nesse local.
No entanto, ainda estou recebendo um arquivo .zcompdump despejado em meu diretório $HOME, embora eu tenha definido um local específico.
Eu costumava usar oh-my-zsh, mas achei muito inchado para os meus requisitos. Poderia haver alguma configuração residual da configuração anterior do oh-my-zsh que pode estar causando o .zcompdump adicional em meu diretório $HOME?
Eu notei esse comportamento surpreendente e não consigo entender o que está acontecendo:
$ bash -c 'echo [-1]'
1
$ zsh -c 'echo [-1]'
1
Parece que o analisador de comandos tenta avaliar uma expressão:
$ echo [1,2,3]
1
$ echo [123-33]
1
Porque se a expressão estiver entre aspas ou indicar que um colchete é apenas um colchete, a avaliação estranha será omitida.
$ echo \[123-33]
[123-33]
$ echo [123-33\]
[123-33]
$ echo '[123-33]'
[123-33]
Enquanto procurava por pistas, encontrei esta citação:
Ressalvas
Ao indexar matrizes associativas Bash, sempre use aspas. Caso contrário, o analisador estático terá que assumir que o índice é uma expressão aritmética.
$ echo '${array[spaced string]}' | shfmt 1:16: not a valid arithmetic operator: string $ echo '${array[dash-string]}' | shfmt ${array[dash - string]}
Não tenho certeza do que fazer com isso, porque não há matriz para falar no contexto deecho [1-1]
É claro que isso pode ser causado por algo em meu próprio ambiente, mas quando eu verifico, não parece ser:
$ env -i HOME=$(mktemp -d) bash --noprofile --norc
bash-5.1$ echo [1-1]
1
$ env -i HOME=$(mktemp -d) /bin/bash-4.4 --noprofile --norc
bash-4.4-4.4$ echo [1-1]
1
Mas, novamente, em uma caixa ubuntu, obtenho um resultado diferente:
$ bash --version | sed 1q; echo [1-1]
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
[1-1]
Desativar todas as opções não altera esse comportamento.
for i in `shopt | awk '/on$/ { print $1}'`; do shopt -u $i;done
Você tem alguma ideia do que está fazendo com que essa expressão de colchetes seja avaliada e por que o resultado é 1?
Procurando ajuda para escapar de "&" na linha de comando do ADB - qualquer orientação seria muito apreciada!
Estou tentando extrair arquivos de livros .epub de um tablet Android executando o aplicativo B&N Nook. O aplicativo NOOK armazena arquivos de e-book em "/data/data/bn.ereader/files/B&N Downloads/Books" A string "B&N Downloads" está causando problemas nos comandos shell do ADB. Já tentei escapar do "&" e do "espaço" das seguintes formas...
$ ./adb shell cd ./data/data/bn.ereader/files/B&N Downloads/Books (comando original)
$ ./adb shell cd ./data/data/bn.ereader/files/B\&N\ Downloads/ Livros
$ ./adb shell cd ./data/data/bn.ereader/files/'B&N Downloads'/Livros
$ ./adb shell cd './data/data/bn.ereader/files/B&N Downloads/Livros'
$ ./adb shell cd ./data/data/bn.ereader/files/"B&N Downloads"/Livros
$ ./adb shell cd ./data/data/bn.ereader/files/B^&N^ Downloads/Livros
(que último da sugestão em outra resposta: Tentando dar "&" como parte do adb shell input text )
sempre dando o mesmo erro...
/system/bin/sh: N: não encontrado
/system/bin/sh: cd: /data/data/bn.ereader/files/B: Arquivo ou diretório inexistente
Computador ADB:
MacBookPro 9,2 (meados de 2012)
Versão do sistema: macOS 10.14.6 (18G9323) "Mojave"
Versão do kernel: Darwin 18.7.0.
Dispositivo Android de destino:
B&N Nook HD+ (executando CyanogenMod)
Versão do Android: 7.1.1
Versão do kernel: 3.0.101 (dmaces@gc-xenial #1)
Número da versão: cm_ovation-userdebug 7.1.1 NMF26Q 161222 chaves de teste
Também tentei isso em um Lenovo Tab M10 Plus 3ª geração com os mesmos resultados:
Versão do Android: 12
Versão do kernel: 4.14.186-ga2e751134649
Número da compilação: TB125FU_S000118_220927_ROW
[NOTA: Concluí minha tarefa original simplesmente executando um "pull" de toda a maldita árvore de diretórios acima da pasta "B&N Downloads" do problema, mas a questão de como escapar de "&" permanece]