Vous pouvez ouvrir un PDF en tant que variable Bash (exprimée sous forme de chemin d'accès au fichier) comme ceci.
-
Définissez votre variable :
pdf=/chemin/vers/44592-linux-restricted-shell-bypass-guide.pdf
-
Ouvrez le fichier de cette manière :
open "$pdf" -a Preview
Cependant, votre exemple indique que le fichier n'existe pas sur votre système de fichiers. Si vous souhaitez ouvrir un flux de données brut stocké dans une variable, je recommande d'afficher votre variable et de le rediriger vers open
en utilisant l'option -f
comme ceci.
-
Définissez votre variable :
pdf=$(wget -qO- https://www.exploit-db.com/docs/english/44592-linux-restricted-shell-bypass-guide.pdf)
-
Ouvrez les données brutes en tant que flux depuis l'entrée standard :
echo $pdf | open -f -a Preview
Explication : Si vous stockez la sortie de wget -qO- …
en tant que variable, au lieu de télécharger le fichier sur votre système de fichiers, open
ne saura pas quoi faire car vous lui transmettez les données brutes du fichier plutôt que le chemin d'accès au fichier. Dans le manuel de open
, le terme ‘file’ fait référence à un fichier pouvant être ouvert par l'application donnée, ce qui n'est pas le cas de la variable dans votre exemple. L'option -f
est utile dans ce scénario car votre méthode de définition de la variable implique le stockage de l'intégralité du flux de fichiers, ce qui ne sera pas interprété comme un fichier par open
, et donc il ne peut être ouvert que comme un flux de fichiers.