AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

    • Início
    • system&network
    • Ubuntu
    • Unix
    • DBA
    • Computer
    • Coding
    • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / 问题

Perguntas[scripts](ubuntu)

Martin Hope
aguiadouro
Asked: 2025-04-04 21:13:58 +0800 CST

Por que clicar duas vezes no meu script .sh o abre no Vim em vez de executá-lo, mesmo depois de chmod +x?

  • 7

Criei um script de shell simples no Ubuntu 24.04.0 LTS e o tornei executável com:

chmod +x myscript.sh

O script tem o shebang correto ( #!/bin/bash) e funciona bem quando executado no terminal ( ./myscript.sh). No entanto, quando clico duas vezes no arquivo, em vez de executar, ele abre um terminal com o Vim e exibe o conteúdo do script.

Como faço para corrigir isso? Quero executar o script com clique duplo.

Conteúdo do meu roteiro:

#!/bin/bash
dart /home/rsj/Documents/01_ProfEPT/ProfEPT-disciplinas-eletivas/abreVSCODE.dart
scripts
  • 2 respostas
  • 148 Views
Martin Hope
udippel
Asked: 2024-08-18 03:26:07 +0800 CST

Como posso modificar uma variável/argumento passado para um script online/inline

  • 5

Estou procurando passar uma variável para o script (sei como fazer isso), que será repetida pelo script para modificar um pouco essa variável.

$ [scriptname] foo bar 

onde [scriptname] é o nome do programa e fooos bardois argumentos passados. [Editado para esclarecimento, após comentário:] O arquivo resultante deve ser nomeado foo_bar1, mas com a opção de o usuário fazer pequenas modificações no nome do arquivo que não pode ser conhecido de antemão. Portanto, poderia parecer

$ [scriptname] foo bar
The output file name will be foo_bar1

E aqui eu gostaria de poder usar interativamente, como barra invertida, remover 1e substituí-lo por sublinhado ( _) e 2: O nome do arquivo de saída será, portanto, foo_bar_2 E esta seria posteriormente uma variável conhecida ou nova no script, para que os resultados deste script pode ser gravado em um arquivo de saída chamado foo_bar_2.
O motivo da minha pergunta é que os nomes dos arquivos não têm apenas 3 caracteres, mas são bastante longos e contêm dados específicos. Portanto, o usuário não deve (tentar) redigitar dezenas de caracteres; muitas vezes o nome do arquivo de saída será o proposto. O usuário verá, na maioria das vezes apenas 'Enter'. Embora também tenha a chance de adicionar pequenas modificações próprias. [Espero que isso explique um pouco melhor o que eu preciso.?]

Isso é possível? Se sim, eu ficaria feliz em aprender como fazer isso. E não é necessariamente apenas o último número (eu saberia como removê-lo/isolá-lo). Mas, às vezes, eu também deveria poder chamar o output foofoo_bar_2.

scripts
  • 1 respostas
  • 56 Views
Martin Hope
Luca Panareo
Asked: 2024-05-14 17:36:27 +0800 CST

Movimento recorrente de arquivos completos

  • 5

Gostaria de responder a uma questão que pode ter sido discutida anteriormente ou abordada indiretamente através de outras questões.

Estou precisando de uma solução para mover arquivos recorrentemente com uma extensão específica de uma pasta para outra. Porém, devido ao processo de extração automatizado, é fundamental que o script possa identificar e ignorar arquivos que não foram completamente extraídos.

Já desenvolvi um script preliminar e testei-o com o crontab. Agora, procuro aprimorá-lo incorporando as seguintes funcionalidades:

  • Especificando o tratamento de arquivos com uma extensão específica
  • Implementando um mecanismo para ignorar arquivos extraídos de forma incompleta

Melhor Lucas


Após a primeira resposta, fiz esse script. Os arquivos antes da extração são .rar (também dividido em .part), mas com esse script quase resolvi tudo

#!/bin/bash

# Source folder
source_folder="-----"

# Destination folder
destination_folder="-----"

# File extension to be moved file_extension="-----"

# Iteration through the files with the specified extension
for file in "$source_folder"/*"$file_extension"; do
    # Check if the file is open
    if ! lsof "$file" >/dev/null 2>&1; then
        # move the file
        mv "$file" "$destination_folder"
    fi
done
scripts
  • 1 respostas
  • 44 Views
Martin Hope
Iano
Asked: 2024-02-14 17:44:32 +0800 CST

Remoção de arquivo ao desligar

  • 7

Estou usando o Ubuntu 22.04LTS. Gostaria de criar uma pasta "temp" onde durante minha sessão eu salvo os arquivos que são, como o nome sugere, temporários. Como posso definir um script que, ao desligar, exclua automaticamente o conteúdo desta pasta?

Ex: Baixo alguns documentos que preciso para algumas tarefas mas no final das contas não preciso guardá-los, evitando assim acumular arquivos inúteis.

scripts
  • 2 respostas
  • 540 Views
Martin Hope
Blohsh
Asked: 2024-02-13 18:37:14 +0800 CST

Script para notificar por e-mail quando houver pouco espaço em disco

  • 5

Encontrei o script mencionado abaixo na internet, que avisa por e-mail quando o servidor fica com pouco armazenamento ou conforme definido. Eu o executo a cada 5 minutos, se estiver com pouco armazenamento, ele continua me notificando por e-mail após 5 minutos. O que preciso é receber apenas 1 notificação por e-mail quando o limite de armazenamento definido for excedido, porque 1 notificação é suficiente. Vou limpar o armazenamento e, se exceder novamente, serei notificado novamente uma vez e assim por diante. eu executo o script com o crontab.

#!/bin/sh
# Purpose: Monitor Linux disk space and send an email alert to $ADMIN
ALERT=90 # alert level 
ADMIN="[email protected]" # dev/sysadmin email ID
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read -r output;
do
  echo "$output"
  usep=$(echo "$output" | awk '{ print $1}' | cut -d'%' -f1 )
  partition=$(echo "$output" | awk '{ print $2 }' )
  if [ $usep -ge $ALERT ]; then
    echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
    mail -s "Alert: Almost out of disk space $usep%" "$ADMIN"
  fi
done
scripts
  • 1 respostas
  • 63 Views
Martin Hope
thatjackelliott
Asked: 2023-10-24 21:45:10 +0800 CST

Este script simples consumiu muita CPU, por quê?

  • 12

Tenho uma máquina remota que preciso ficar de olho. Está executando o Ubuntu Studio 22.04 (KDE Plasma). Algumas semanas atrás, ele travou e o Journalctl mostrou um “Bug” que ocorreu alguns minutos antes da falha. Então escrevi um script simples que segue o journalctl e se aparecer a palavra "Bug" ele envia um email de aviso. Eu configurei esse script para execução há cerca de 10 dias. Ontem, conectei-me remotamente à máquina e verifiquei o htop e descobri que o script estava usando mais de 90% da CPU. Eu o matei e o uso da CPU voltou ao normal. Aqui está o roteiro:

#!/bin/bash

#####################
#   THIS SCRIPT LAUNCHED AT STARTUP, CHECKS journalctl for string "Bug"
######################

while true; do

nohup journalctl --follow | grep -i -q "bug" && mutt -s "ALERT - AirchainPC may be in TROUBLE" -- [email protected] < bug_issued_by_journalctl.txt &>/dev/null &

done

Há algo que possa explicar o alto uso da CPU? Aliás, acho que não preciso desse "nohup".

scripts
  • 1 respostas
  • 4116 Views
Martin Hope
Eliseo Di Folco
Asked: 2023-09-28 20:35:40 +0800 CST

wsl -e não pode executar um script que possa ser executado quando o wsl for executado

  • 5

Criei um arquivo no Ubuntu chamado bash_test_01.sh contendo o comandoecho "cmd is executed"

no Powershell, se eu executar

>wsl

$cd /home

$/home/adm_difolco_e/bash_test_01.sh

eu recebo

cmd é executado.

No entanto, se eu correr

wsl -e /home/adm_difolco_e/bash_test_01.sh

eu recebo

<3>WSL (31608) ERROR: CreateProcessEntryCommon:570: execvpe /home/adm_difolco_e/bash_test_01.sh failed 8 <3>WSL (31608) ERROR: CreateProcessEntryCommon:579: Create process not expected to return

scripts
  • 1 respostas
  • 22 Views
Martin Hope
Snappawapa
Asked: 2023-09-12 11:52:08 +0800 CST

Ao instalar, o comando em `postinst` sempre resulta em `$?` = `0`

  • 8

Eu tenho um postinstscript no meu pacote debian:

#!/bin/bash

oqm-config -g system.hostname
RESULT="$?"
if [ "$RESULT" -eq 1 ]; then
  oqm-config -s system.hostname $(hostname).local "."
fi

O objetivo é preencher uma variável de configuração (se ela não existir). Estes comandos funcionam fora do processo de instalação:

$ sudo ./test.sh 
+ oqm-config -g system.hostname
ERROR: Config key not found: system.hostname
+ RESULT=1
+ [ 1 -eq 1 ]
+ hostname
+ oqm-config -s system.hostname oqm-demo.local .
{
    "system": {
        "hostname": "oqm-demo.local"
    },
    "captain": {},
    "snapshots": {
        "location": "/data/oqm-snapshots/",
        "numToKeep": 5,
        "frequency": "weekly"
    }
}

No entanto, quando executado durante a instalação, o código de retorno da inicial oqm-config -g system.hostnameé sempre 0(ou, mais precisamente, uma string vazia? Não tenho certeza por que esse erro específico de uma string vazia deveria ser 0?):

Setting up open+quarter+master-manager-station+captain (1.0.18) ...
+ oqm-config -g system.hostname
ERROR: Config key not found: system.hostname
+ RESULT=0
+ '[' '' -eq 1 ']'
/var/lib/dpkg/info/open+quarter+master-manager-station+captain.postinst: line 5: [: : integer exp
ression expected

Estou esquecendo de algo?

Construindo o arquivo debian no Ubuntu 20.04, tentando instalar em22.04

Arquivo Debian: https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/releases/tag/manager-station%2Bcaptain-1.0.18

Arquivo que faz o debian (eu sei que é bagunçado, mas funciona [normalmente]): https://github.com/Epic-Breakfast-Productions/OpenQuarterMaster/blob/dev.388-fr-finish-keycloak-infra-component/ software/Capitão da estação/makeInstallers.sh#L107-L117

scripts
  • 1 respostas
  • 176 Views
Martin Hope
Mandroid
Asked: 2023-08-23 18:06:48 +0800 CST

script linux: '. /caminho/para/outroscript'

  • 5

Eu tenho um arquivo de script que se refere a outro arquivo de script (contendo algumas funções) desta forma:

. "${scripts_dir}/update.sh"

O que isso significa em scripts Linux?

Ele carrega o código em update.sh para que possa ser invocado agora?

scripts
  • 1 respostas
  • 44 Views
Martin Hope
BowPark
Asked: 2023-08-18 16:44:22 +0800 CST

Não é possível executar o envio de notificação do cronjob

  • 5

No meu Kubuntu 22.04, um script executado pelo meu crontab usa notify-send. No entanto, não funciona: não aparece nenhum pop-up. Se eu redirecionar a saída ( stderrem particular) do script para um arquivo, este erro é impresso:

Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached

Se, em vez disso, eu executar notify-senddiretamente de um cronjob,

0 * * * * env DISPLAY=:0.0 notify-send --expire-time=0 --app-name="Test" 'Test text' 1>/tmp/out1 2>/tmp/out2

out1e out2estão vazios; no entanto, isso não funciona como antes. O pop-up não aparece.

Existe uma maneira de fazer notify-sendo trabalho como esperado?

scripts
  • 1 respostas
  • 17 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve