• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af peque | 19.02.2018 09:22

[LØST] Add +1 til en string

Hjælp generelt
Heysa.
Jeg har noget replikering der kører omkring MySQL.
Dog ville jeg rigtig gerne have dette til at starte automatisk.
Jeg har fået lavet således jeg har grabbet det rigtige binlog navn --> F.eks. mysql-bin.000004

Hvordan kan jeg lave dette således et bashscript ændrer mysql-bin.000004 - til mysql-bin.000005
Mit bud er hvis jeg lavet alt efter punktum til INT - vil den fjerne de 5 nuller foran - hvilkwet i denne sammenhæng er meget vigtige

Så jeg fået en variable ind - som jeg skal plusse en. så skulle gerne have det samme filnavn --> således jeg kan genstarte min replikering automatisk

  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer11

# 1

7 år 4 måneder siden

Permalink

Indsendt af julemand101 den 19. februar 2018 kl. 11:12

Permalink

Kan du ikke gøre noget som

Kan du ikke gøre noget som dette? Jeg tænker du nok selv kan finde ud af hvordan du får tallet ind i sin egen variabel. :)


#!/bin/bash
var="000004"
var2=$(printf "%06d" $((var + 1)))
echo $var2
  • Log ind eller opret dig for at tilføje kommentarer

# 2

7 år 4 måneder siden

Permalink

Indsendt af peque den 26. februar 2018 kl. 11:09

Permalink

Hey Julemand.Takker for dit

Hey Julemand.
Takker for dit input
Jeg har leget lidt med dette - men får lidt fejl jeg ikke lige forstår

#!/bin/bash
#
BIN1=`echo mysql-bin.0002345 | rev | cut -d'.' -f 1 | rev `
BIN2=$(printf "%06d" $((BIN1 + 1)))
BINLOG='mysql-bin.'+$BIN2
echo $BIN1
echo $BIN2
echo $BINLOG


giver mig kun output
0002345
001254
mysql-bin.001254
  • Log ind eller opret dig for at tilføje kommentarer

# 3

7 år 4 måneder siden

Permalink

Indsendt af julemand101 den 26. februar 2018 kl. 12:56

Permalink

Jeg kan godt se det jeg fik

Jeg kan godt se det jeg fik lavet ikke virker optimalt. Her er en bedre kode :P


#!/bin/bash
BIN1=`echo -n mysql-bin.001023`
BIN2=${BIN1: -6}
BIN3=$((10#$BIN2))
BIN4=$(printf "%06d" $((1 + BIN3)))
BINLOG="mysql-bin.$BIN4"
echo $BINLOG


Forskellen er her at jeg ved BIN2 tager de sidste 6 bytes fra BIN1. Ved BIN3 bruger jeg en indbygget Bash funktion til at skære 001023 om til 1023 og først herefter ligger jeg 1 til denne værdi. Noget tyder på at hvis et nummer starter med 00 så tolker bash det som noget andet (måske hex?) når den skal ligge tal sammen.
  • Log ind eller opret dig for at tilføje kommentarer

# 4

7 år 4 måneder siden

Permalink

Indsendt af ejvindh den 26. februar 2018 kl. 13:45

Permalink

hvis et nummer starter med

hvis et nummer starter med 00 så tolker bash det som noget andet (måske hex?)
Det er oktaler: http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic
  • Log ind eller opret dig for at tilføje kommentarer

# 5

7 år 4 måneder siden

Permalink

Indsendt af julemand101 den 26. februar 2018 kl. 14:01

Permalink

#4
Super, så giver det fint

#4
Super, så giver det fint mening at skære frontløbende nuller væk for at undgå denne 'feature'. :)
  • Log ind eller opret dig for at tilføje kommentarer

# 6

7 år 4 måneder siden

Permalink

Indsendt af frogmaster den 26. februar 2018 kl. 19:30

Permalink

Super, så giver det

#5: Super, så giver det fint mening at skære frontløbende nuller væk for at undgå denne 'feature'. :)

Ja, men de skal tilføjes igen til navngivningen af dokumentet, for at overholde betingelsen if. oplysningen i #0, der som jeg opfatter problemet, er nødvendig for videre.

#0: Mit bud er hvis jeg lavet alt efter punktum til INT - vil den fjerne de 5 nuller foran - hvilkwet i denne sammenhæng er meget vigtige.

Beklager hvis denne kommentar er irrelevant.
  • Log ind eller opret dig for at tilføje kommentarer

# 7

7 år 4 måneder siden

Permalink

Indsendt af julemand101 den 26. februar 2018 kl. 19:35

Permalink

#6
Tilføjer skam nullerne

#6
Tilføjer skam nullerne igen hvis du ser mit script ;)
  • Log ind eller opret dig for at tilføje kommentarer

# 8

7 år 4 måneder siden

Permalink

Indsendt af frogmaster den 26. februar 2018 kl. 19:38

Permalink

Tilføjer skam nullerne

#7: Tilføjer skam nullerne igen hvis du ser mit script ;)

OK ;)
  • Log ind eller opret dig for at tilføje kommentarer

# 9

7 år 4 måneder siden

Permalink

Indsendt af peque den 27. februar 2018 kl. 08:27

Permalink

Hey Gutter.Fantastisk forum

Hey Gutter.
Fantastisk forum - fantastiske medlemmer - Jeg bukker og takker mange gange!

@ Julemand - er der så også taget højde for hvis den skifter f.eks fra 99 til 100 - så er der jo et mindre 0 der skal foran ?
Jeg spørger kun for at være sikker EDIT --> Du har du fuldstændig styr på!!!!

Takker for hjælpen!!!

  • Log ind eller opret dig for at tilføje kommentarer

# 10

7 år 4 måneder siden

Permalink

Indsendt af julemand101 den 27. februar 2018 kl. 09:40

Permalink

#9
er der så også taget

#9
er der så også taget højde for hvis den skifter f.eks fra 99 til 100

Tsk hvor er jeg er skuffet over du ikke forventer jeg har taget hånd om det. Men som du vil kunne se med:
BIN4=$(printf "%06d" $((1 + BIN3)))

Så angiver jeg at jeg ønsker tallet skal udskrives som et decimal og længden skal være på 6 tegn hvor der vil blive tilføjet frontløbende 0'er. :)
  • Log ind eller opret dig for at tilføje kommentarer

# 11

7 år 4 måneder siden

Permalink

Indsendt af peque den 27. februar 2018 kl. 11:07

In reply to #9
er der så også taget
by julemand101

Permalink

@julemand.
Syntes jeg

@julemand.
Syntes jeg skyndte mig at verificere du havde taget højde for det --> WELL DONE --> Mange tak
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

llumos Unix-operativsystem, 0
Den er go 0
14. februar = I Love Free Software Day 0
Lokal fil-deling - for de dovne. 0
Linux fra begynder til professionel af O'Reilly 0

Seneste aktivitet

Gode anmeldelser Zorin OS 17.3 8
Open Source-eksperimentet 5
En snak om Linux-kompatibel software 7
Nulstilling af adgangskode 6
Virtuel maskine? 2
PCLinuxOS 27
"Intet realistisk alternativ" - mig i r*ven 15
Ingen Mint 5
Linux App Store Flathub når 3 milliarder downloads 2
Digitaliseringsministeriet sætter gang i pilotprojekt om digital suverænitet 3
Mest sikker webbrowser 5
Firefox 2
Privatbeskeder 7
Backup/synkronisering? 3
BigLinux 5
Chatgpt satire 1
Læsning af databasefil i Firefox 2
Vanilla OS 15
Pepsi Challenge 4
Linuxin er nu migreret til Drupal 11 13

© 2025 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !