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 № 1Operator 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")"