Perguntas com a marcação «shell-script»

42
Como coletar corretamente uma matriz de linhas no zsh

Eu pensei que o seguinte agruparia a saída de my_commandem uma matriz de linhas: IFS='\n' array_of_lines=$(my_command); de modo que $array_of_lines[1]se referisse à primeira linha na saída de my_command, $array_of_lines[2]à segunda e assim por diante. No entanto, o comando acima parece não...

41
O que "set -" faz neste ponto de entrada do Dockerfile?

Estou tentando entender o que esse ponto de entrada do Docker faz . Parece-me que esse é um padrão muito comum ao escrever Dockerfiles, mas minhas habilidades no bash são limitadas e não tenho idéia de todos os símbolos especiais do bash kung fu. Além disso, é difícil pesquisar no Google por...

41
Localizando o maior arquivo recursivamente

Estou tentando encontrar o maior arquivo em um diretório recursivamente. Se houver um subdiretório dentro desse diretório, a função precisará entrar nesse diretório e verificar se o arquivo maior está lá. Depois que o arquivo maior é encontrado, a saída é exibida com o nome do caminho relativo e o...

41
Variável como comando; eval vs bash -c

Eu estava lendo um script que alguém fez e eu observei que o autor não usar eval para avaliar uma variável como um comando O autor usou bash -c "$1" ao invés de eval "$1" Presumo que o eval seja o método preferido e, provavelmente, seja mais rápido. Isso é verdade? Existe alguma diferença...

40
Como o awk '! A [$ 0] ++' funciona?

Esse alinhamento remove linhas duplicadas da entrada de texto sem pré-classificação. Por exemplo: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ O código original que encontrei nas internets dizia: awk '!_[$0]++' Isso foi ainda mais desconcertante para mim, pois eu _tive um...

40
Unindo argumentos bash em uma única string com espaços

Estou tentando associar todos os argumentos a uma função Bash em uma única seqüência de caracteres com espaços que separam cada argumento. Também preciso que a string inclua aspas simples em toda a string. Aqui está o que eu tenho até agora ... $array=("$@") str="\'" for arg in "${array[@]}"; do...

37
O que significa "$ {- # * i}"! = "$ -" significa?

No /etc/profileque vejo isso: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done O que ${-#*i}significa isso ? Não consigo encontrar uma definição de início de expansão de parâmetro...