Wpis z mikrobloga

#programowanie #linux #bash

mam taką funkcję w bashu:

function cut() {
file=$1
part=$2
offset=$part*48
filename=$(basename ${file})
echo "Cutting part $part from $file"
convert "$file[48x48+$offset+0]" "test$part.png"
}

problem polega na tym, że $offset ewaluuje do stringa "3*48" np, zamiast przemnożyć wartość part * 48 i zwrócić wynik

co zrobić żeby to potraktowało jako liczby i wyliczyło wynik działania?
  • 12
  • Odpowiedz
@fishol: Problem, który opisujesz, dotyczy tego, że w Bashie zmienna offset ewaluuje się jako string "3*48", zamiast jako wynik działania matematycznego. Aby zmusić Bash do obliczenia wyrażenia matematycznego i przypisania wyniku do zmiennej offset, możesz skorzystać z mechanizmu arytmetycznego w Bashu.

W przypadku obliczenia wartości offset jako wyniku mnożenia part * 48, możesz użyć następującej składni w funkcji:

bash
Copy code
function cut() {
file=$1
part=$2
offset=$((part * 48))
filename=$(basename "$file")
  • Odpowiedz
co zrobić żeby to potraktowało jako liczby i wyliczyło wynik działania?


@fishol: Sprawić, żeby bash potraktował wartość wpisaną w offset jako działanie arytmetyczne:
offset=$((part*48))
  • Odpowiedz
@fishol: nie znam się na bashu, ale chyba musisz użyć metodę wymuszającą iterpretacji $2 jako liczby - czyli jakiś int($2)


@miszczu90: nie chcę być złośliwy, ale jak nie znasz się na bashu to spróbuj chociaż nie wprowadzać w błąd bo twój koment zajebiście oddala OPa od rozwiązania problemu xD

@fishol ogólnie w necie masz sporo manuali do basha jak się robi specjalne operacje na zmiannych bez zewnętrznych poleceń

@Piotrekp666:
  • Odpowiedz
  • 0
@Piotrekp666: @Kryspin013 Bardzo dziękuje :) działa

@Kryspin013 wiem że na necie tego jest, ale otworzyłem jakiś pierwszy z brzegu i nie zadziałał to stwierdziłem a co tam, napisze na wypoku zamiast sie przekopywać, a nóż jakiś dobry mireczek co ogarnia przeczyta i szybko naprowadzi, no i się nie pomyliłem :)
  • Odpowiedz
@fishol: ja nie ogarniam, nawet nie przeczytałem tego co Ci wkleiłem. Korzystaj z Chata gpt.
Jak się uczysz to: Piszesz sam -> sprawdzasz czy działa (nie działa) -> poprawiasz -> sprawdzasz czy działa (nie działa) -> pytasz chat gpt (może działa).

Nie ma programowania bez tego teraz. Ale na początku korzystaj tylko do sprawdzania rozwiązań/porad a nie do generowania bo i tak musisz rozumieć co on #!$%@? i go poprawiać.
  • Odpowiedz
@Kryspin013 wiem że na necie tego jest, ale otworzyłem jakiś pierwszy z brzegu i nie zadziałał to stwierdziłem a co tam, napisze na wypoku zamiast sie przekopywać, a nóż jakiś dobry mireczek co ogarnia przeczyta i szybko naprowadzi, no i się nie pomyliłem :)


@fishol: tzn rzuciłem ci to jako ciekawostkę bo w bashu masz dosyć nieintuicyjne tablice, podmiany stringów i inne cuda które są dosyć wygodne i warto, e może
  • Odpowiedz
@Piotrekp666:

Nie ma programowania bez tego teraz


Jak ktoś nie umie programować i dopiero się uczy to może tak, ale też ostrożnie z tym bo chat generuje często bardzo zły kod i nauczysz się złych praktyk.

Jestem właśnie na spędzie wszystkich programistów z firmy. Serio - nikt obecnie nie używa już tych chatów w pracy, a rozmawiałem z wieloma osobami. Nie ma też ani jednej dyskusji poświęconej użyciu AI w codziennej
  • Odpowiedz