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.