J'ai créé un bash script pour démarrer un ordinateur du réseau s'il est endormi, puis démarrer un client de streaming. Cependant, lorsque le script exécute la commande finale pour lancer le client de diffusion en continu, chaque option cli comportant un trait d'union est enveloppée de $'\342\200\224<option>'
. Par exemple -resolution
devient $'\342\200\224resolution'
.
Plus précisément, cette commande dans le script :
/Applications/Moonlight.app/Contents/MacOS/Moonlight stream "$_target_computer_ip" "$_moonlight_app_name" —resolution "$_moonlight_resolution" —fps "$_moonlight_fps" &>/dev/null &
s'exécute dans le shell en tant que :
/Applications/Moonlight.app/Contents/MacOS/Moonlight stream 192.168.1.30 mstsc.exe $'\342\200\224resolution' 1920x1024 $'\342\200\224fps' 30
J'ai essayé d'échapper le trait d'union en tant que -, mais cela change juste la sortie en $'?\200\224
. Qu'est-ce que je fais de mal ?
Voici le script complet :
#!/bin/bash
set -x
_target_computer_ip='192.168.1.30'
_target_computer_subnet='192.168.1.255'
_target_computer_mac='2C:F0:5D:27:7C:95'
_moonlight_app_name='mstsc.exe'
_moonlight_resolution='1920x1080'
_moonlight_fps='30'
if ping -c 1 -W 1 "$_target_computer_ip"; then
echo "is alive"
else
echo "nope"
wakeonlan -i $_target_computer_subnet $_target_computer_mac
fi
/Applications/Moonlight.app/Contents/MacOS/Moonlight stream "$_target_computer_ip" "$_moonlight_app_name" —resolution "$_moonlight_resolution" —fps "$_moonlight_fps" &>/dev/null &
Et la sortie complète de la commande :
Fayes-MBP:Shell Scripts rain$ ./check_and_wake_pc.sh
+ _target_computer_ip=192.168.1.30
+ _target_computer_subnet=192.168.1.255
+ _target_computer_mac=2C:F0:5D:27:7C:95
+ _moonlight_app_name=mstsc.exe
+ _moonlight_resolution=1920x1080
+ _moonlight_fps=30
+ echo 192.168.1.30
192.168.1.30
+ ping -c 1 -W 1 192.168.1.30
PING 192.168.1.30 (192.168.1.30): 56 data bytes
--- 192.168.1.30 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss, 1 packets out of wait time
round-trip min/avg/max/stddev = 3.701/3.701/3.701/0.000 ms
+ echo 'is alive'
is alive
+ /Applications/Moonlight.app/Contents/MacOS/Moonlight stream 192.168.1.30 mstsc.exe $'?\200\224resolution' 1920x1080 $'?\200\224fps' 30
0 votes
Où exactement voyez vous la sortie que vous montrez
0 votes
Dans un terminal. J'ai mis à jour la question avec le résultat complet de la commande.