Jaki byłby najlepszy sposób w * nix (alias, skrypt itp.), Aby skrócić dostępne opcje dla polecenia, które nie zapewnia krótkiej formy?
Pomysł polegałby na tym, że w jakiś sposób można zawinąć polecenie, aby móc skrócić tylko pierwszą opcję. Pozwala to również na użycie oryginalnych.
Zwykłe polecenie:
> command option1 file.txt
> command option2 file.txt
Korzystanie z opakowania:
> command o1 file.txt
> command o2 file.txt
Oto pseudokod przedstawiający możliwe rozwiązanie, które przyszło mi do głowy, używając skryptu powłoki o tej samej nazwie polecenia i umieszczając go na pierwszym miejscu w ścieżce PATH.
if $first_argument == "o1"
call <command> option1 $additional_arguments
else if $first_argument == "o2"
call <command> option2 $additional_arguments
else
call <command> $first_argument $additional_arguments
Czy to byłoby możliwe?
linux
command-line
unix
shell
df01
źródło
źródło
-o
,-option
,--option
,o
) trudno byłoby zrobić coś uniwersalnego..bash_profile
i podstawić ciąg znaków na parametrach (tj.$@
Itp.), A następnie wykonać to. Moje bash-fu jest jednak niewystarczające na przykładowy kod.Odpowiedzi:
Możesz tworzyć aliasy w swoim pliku ~ / .bashrc. Na przykład utworzenie 7-zipowego archiwum folderu, którym zwykle byłby
w swoim ~ / .bashrc wstaw:
Potem możesz po prostu zrobić,
Musisz się wylogować i zalogować ponownie, aby zadziałało, lub wykonaj source ~ / .bashrc
HTH :)
==== EDYCJA: Biorąc pod uwagę poniższe odpowiedzi, cóż, myślę, że możesz to zrobić, jeśli zmodyfikujesz PATH, aby najpierw przeglądać osobiste foldery skryptów, takie jak
ŚCIEŻKA = ~ /. Krótkie polecenia: $ ŚCIEŻKA
Następnie możesz utworzyć skrypty o tych samych nazwach, które są zainstalowane w np. / Usr / sbin, zapętlić wszystkie argumenty, rozwinąć te, które chcesz, a następnie zakończyć wywoływanie „prawdziwego” skryptu / aplikacji w jego ścieżka bezwzględna z przetłumaczonym zestawem opcji.
Na przykład
połączenia
co przekłada się na:
Sam skrypt będzie iterował listę argumentów, a następnie przetłumaczyłby, co ma sens dla twoich potrzeb. Prawdopodobnie byłbyś daleko od możliwości stworzenia „powłoki” na podstawie oryginalnego polecenia, ale oczywiście nie tego szukasz. Nie jestem pewien, czy jesteś biegły w skryptach bash, ale jest tam mnóstwo bardzo dobrych zasobów. Aby służyć jako przykład dla iteracji argumentów, oto fragment skryptu, nad którym obecnie pracuję, który tworzy / sprawdza dane parzystości i pliki sum kontrolnych dla innych plików:
źródło
alias cmdo1='command o1'
.Zależy to częściowo od tego, jak polecenie analizuje opcje. W przypadku programów, które są budowane przy użyciu biblioteki parsowania argumentów popt, wbudowany jest mechanizm aliasingu, w którym można tworzyć opcje aliasów, które rozszerzają się do istniejących opcji, używając pliku rc w katalogu domowym. Niestety, dokumentacja popt nie jest specjalnie skierowana do użytkowników końcowych, ale do programistów chcących skorzystać z biblioteki w swoich programach. Jednak informacje na temat
/etc/popt
i${HOME}/.popt
można znaleźć w rozdziale 3 ręcznym stroniepopt
w opcji aliasingu sekcji.Dotyczy to oczywiście tylko programów zbudowanych z myślą o użyciu popt. Jak wspomniano powyżej, nie ma uniwersalnego mechanizmu, ponieważ nie ma jednego mechanizmu analizy argumentów używanego przez wszystkie programy. Skrypty i aliasy opakowań są regresem dla programów, w których nie ma dostępnego mechanizmu pop lub podobnego do popt.
źródło
Czy ma to ułatwić ich pisanie? Możesz sprawdzić Programowalne zakończenie wiersza poleceń . Może sprawić, że pisanie będzie bardziej wydajne.
źródło