如何从bash中的参数列表中删除第n个元素?
Shift只显示删除前n个,但我想保留第一个.我想要的东西:
#!/bin/sh
set -x
echo $@
shift (from position 2)
echo $@
所以当我调用它时 - 它会从列表中删除"house":
my.sh 1 house 3
1 house 3
1 3
set -- "${@:1:1}" "${@:3}"
将删除第二个正面论点.
您可以使用变量使其成为通用的:
n=2   # This variable denotes the nth argument to be removed
set -- "${@:1:n-1}" "${@:n+1}"