Kezdőoldal » Számítástechnika » Programozás » Hogyan tudsz írni olyan...

Hogyan tudsz írni olyan (bash) scriptet ami futáskor nyomtalanul kitörli magát?

Figyelt kérdés
Próbáltam úgy hogy egy másik scriptet ír és futtat, viszont akkor őt is ki kell törölni. Van bármi trükkötök?

2021. nov. 11. 23:53
 1/7 anonim ***** válasza:
39%

Bár nem értek a programozáshoz, de a poén kedvéért kipróbáltam, hogy mi történik, ha egy BAT fájl végére beírom az önmagát törlő parancsot


(Pl. egy TESZT.BAT nevű fájl végére a "DEL TESZT.BAT" parancsot)


Lefut a paranccsor, majd törlődik a fájl, tehát itt működik.



Esetleg hasonlóképpen működhet az általad említett scripttel is

(De csak tipp)

2021. nov. 12. 00:00
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
Valamiért úgy emlékeztem hibaüzenetet kapok viszont nem, köszönöm
2021. nov. 12. 00:03
 3/7 anonim ***** válasza:

Szerintem túlbonyolítod. Ez így miért nem jó?


filenév: test.sh



#!/bin/bash


echo "Ezt csinálja a program"


# Végén kitörlöd...

rm -f test.sh

2021. nov. 12. 00:06
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

sőt: simán megoszthatod a scriptet neten is, és akkor elég a terminálba:


curl -s [link] | bash


#3-as voltam.

2021. nov. 12. 00:08
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Igen tényleg túlbonyolítottam, akit érdekel itt van egy script(egyik a neve) amit ha meghívsz törli magát de létrehozza a masik scriptet, ami ugyanazt csinálja csak fordítva:


if [ $0 == "./egyik" ]

then

nev=egyik

kovinev=masik

else

kovinev=egyik

nev=masik

fi

if [ $# -gt 0 ]

then

rm $kovinev

exit 0

fi

echo "En a(z) $nev script voltam, most eltunok, de ha gondolod $kovinev-t meg tudod hivni"

touch seged

rm seged

echo cp $nev $kovinev >> seged

echo chmod +x $kovinev >> seged

chmod +x seged

./seged

rm seged

./$kovinev 0

2021. nov. 12. 00:12
 6/7 anonim ***** válasza:

sot ekkor át is nevezheti és mindig magát törli ki.



script_name=$(basename -- "$0")

rm "$script_name"

2021. nov. 12. 10:20
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

bár ez jobb mertz most nekem ha másik dirből is indítottam akkor is törölte magát.


script_name=$(basename -- "$0")

dirname="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

filename_with_path="$dirname"/"$script_name"


rm "$filename_with_path"

2021. nov. 12. 10:29
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!