Удалить исполняемый файл из пути [дубликат]

Su shell ve Google\\ Drivey lo analiza como Google, seguido de una barra invertida literal,un espacio (que separa los argumentos a scp, seguido de Drive, y luego pasa eso a SCP, que no sabe qué hacer ahora que le está enviando demasiados argumentos.

Para hacer esto más claro, compare cómo el shell analiza Google\ DriveyGoogle\\ Drive:

$ cat 443236.sh
#!/bin/bash
foo=(Google\ Drive)
echo "Unrolling \$foo[@]:"
for f in "${foo[@]}"; do
  echo "'$f'"
done
foo=(Google\\ Drive)
echo "Unrolling \$foo[@]:"
for f in "${foo[@]}"; do
  echo "'$f'"
done
$./443236.sh
Unrolling $foo[@]:
'Google Drive'
Unrolling $foo[@]:
'Google\'
'Drive'
4
27.01.2019, 17:24
1 ответ

Я решил свою проблему. Я добавил эту строку в.bashrc:

export EXECIGNORE=*/telepathy-gabble-xmpp-console

Такой подход не сработал:

export EXECIGNORE=$(which telepathy-gabble-xmpp-console)

Поскольку telepathy-gabble-xmpp-consoleустановлен как в /bin, так и в /usr/bin.

Однако небольшая модификация работает, используяwhich -a:

export EXECIGNORE=$(which -a telepathy-gabble-xmpp-console | tr '\n' ':' | head -c -1)
2
27.01.2020, 20:59

Теги

Похожие вопросы