Existuje program, který používám, řekněme xyz , což má nežádoucí účinky, pokud spustím příkaz holý bez argumentů. Rád bych tedy zabránil náhodnému spuštění xyz příkaz bez argumentů, ale povolte mu běh s argumenty.
Jak mohu napsat skript shellu tak, aby při volání xyz bez argumentů vypíše chybovou zprávu a jinak předá všechny argumenty do xyz program?
Přijatá odpověď:
Můžete zkontrolovat speciální proměnnou $#:
if [ $# -eq 0 ]; then
echo "No arguments provided!"
exit 1
fi
/usr/bin/xyz "[email protected]"
Poté přidejte alias do ~/.bashrc;
alias xyz="/path/to/script.sh"
Nyní při každém spuštění xyz , místo toho se spustí alias. To zavolá skript, který zkontroluje, zda máte nějaké argumenty, a spustí pouze skutečný xyz příkaz, pokud to uděláte. Samozřejmě změňte /usr/bin/xyz na jakoukoli úplnou cestu příkazu.