Zmienne skryptu Bash - macos, bash

Muszę napisać skrypt, który wziąłby dwie nazwy plików jako argumenty, a następnie usunął z nich wszystkie duplikaty ukośników i przekazał je do innej aplikacji, powiedzmy vim.

Zacząłem od czegoś takiego, ale oczywiście to nie działa

#!/bin/bash
/usr/local/bin/vim $($1 | sed s#//*#/#g)

Odpowiedzi:

2 dla odpowiedzi № 1

Operator potoku pobierze dane wyjściowe jednego polecenia i przekaże je do innego polecenia. W Twoim przypadku, $1 to wartość ciągu, której nie chcesz uruchamiać jako polecenie. Zamiast tego możesz przekazać tę wartość sed z operatorem przekierowania łańcucha <<<, jak następuje:

$(sed s#//*#/#g <<< $1)

1 dla odpowiedzi nr 2

Dać readlink próba:

/usr/local/bin/vim "$(readlink -m "$1")"