Você não pode usar parâmetros posicionais com um alias.
O comando que você está executando com esse alias é:
ps ax | grep | cut -f1 -d' ' | xargs kill something
Você precisa fazer disso uma função.
Muito mais do que o seu código, mas aqui está uma função semelhante que eu uso:
smash () {
local T_PROC=$1
local T_PIDS=($(pgrep -i "$T_PROC"))
if [[ "${#T_PIDS[@]}" -ge 1 ]]; then
echo "Found the following processes:"
for pid in "${T_PIDS[@]}"; do
echo "$pid" "$(ps -p "$pid" -o comm= | awk -F'/' '{print $NF}')" | column -t
done
if ( yorn.ask "Kill them?" ); then
for pid in "${T_PIDS[@]}"; do
echo "Killing ${pid}..."
( kill -15 "$pid" ) && continue
sleep 2
( kill -2 "$pid" ) && continue
sleep 2
( kill -1 "$pid" ) && continue
echo "What the hell is this thing?" >&2 && return 1
done
else
echo "Exiting..."
return 0
fi
else
echo "No processes found for: $1" >&2 && return 1
fi
}
yorn.ask
é uma função separada que uso:
yorn.ask () {
read -p "$@ [Y/n]: " RESP && local YORN_RESP="$(echo "${RESP:0:1}" | grep -i "[YN]")"
while [[ -z "$YORN_RESP" ]]; do
echo "Please respond only with: y or n"
read -p "$@ [Y/n]: " RESP && local YORN_RESP="$(echo "${RESP:0:1}" | grep -i "[YN]")"
done
[[ "$YORN_RESP" == 'Y' || "$YORN_RESP" == 'y' ]] && return 0 || return 1
}