Sziasztok! Vegyük az alábbi szkriptet, amit meghívok idétlen escapelt spaceokkal, és szeretném a szriptből ezeket megőrizve továbbadni. script.sh :
#!/bin/bash
PULSE_SINK="${some_value}" ${*} &
./script.sh ffplay "Egy\ video\ file.mp4"
Itt az ffplaynek fontos, hogy az "Egy\ video\ file.mp4" egy argumentumként érkezzen.
Ez nemcsak ffplay és ffmpeg-gel lesz használva, és a fileok spacementesítése nem jön szóba. Ötlet?
- 485 megtekintés
Hozzászólások
https://tiswww.case.edu/php/chet/bash/bashref.html#Special-Parameters
$@ - erre gondolsz?
- A hozzászóláshoz be kell jelentkezni
Mármint az "$@" -ra.
- A hozzászóláshoz be kell jelentkezni
ChatGTP:
Ahogy értelmezem, szeretnél egy módot arra, hogy az ffplay
szkriptedet hívd meg úgy, hogy a szkript paramétereként átadott fájlnevekben lévő szóközöket megőrizd. Erre megoldást találhatsz a következőképpen:
Először is, az Egy\ video\ file.mp4
helyett egy változót használj, ami tartalmazza ezt a fájlnevet, és ezt a változót használják a szkriptben. Majd ezt a változót hívd meg a szkripteddel.
Példaként:
script.sh:
#!/bin/bash
PULSE_SINK="${some_value}" "${@}" &
# Példa változó a fájlnévhez
video_file="Egy video file.mp4"
# Az ffplay meghívása a változóval
./script.sh ffplay "${video_file}"
Ez a módszer biztosítja, hogy a szóközökkel ellátott fájlnevek érintetlenek maradjanak a szkriptben. A "$@"
azt jelenti, hogy továbbítja az összes paramétert, amit a szkriptnek átadtak, így a szóközökkel rendelkező fájlnevek megőrződnek.
Használd ezt az elvet más programokhoz is, amelyek szóközöket tartalmazó fájlneveket használnak! Ha valami másra van szükséged, kérlek, szólj!
1904.04.08.
RIP Jákub.
neut @
- A hozzászóláshoz be kell jelentkezni
Ezeket en is a "$@"-al szoktam, az szetesik elemeire. Ha a sajat script is kap sajat parametert, amit nem akarok tovabbadni, akkor azt elotte meg shift-tel feldolgozom, eltuntetem, es utana jon a "$@".
A strange game. The only winning move is not to play. How about a nice game of chess?
- A hozzászóláshoz be kell jelentkezni
Ez kell nekem, működik. Köszi!
- A hozzászóláshoz be kell jelentkezni