11 我该怎么做呢: set foo bar baz unset # Something else here echo $# # Should ouput 0 这样做set "",$#仍将是1而不是0。 shell parameter — 蒂洛 source
14 好的,这只是愚蠢的,我发现使用它set --可以工作。 — 蒂洛 source @Gilles:根据bash手册页,set -没有参数就不会改变位置参数。 — 卡姆(Camh)2011年 @我必须不同意。我在手册中看到了这一点:set-如果没有参数跟随该选项,则位置参数未设置。否则,即使其中一些位置以-开头,也将位置参数设置为args。 — kdubs, @kdubs您正在引用手册页set --。我用过set -(单个连字符),它表示:“如果没有参数,则位置参数保持不变。” — 卡姆(Camh), 你是对的。我让他们感到困惑。我的屏幕使您-看起来像 — kdubs
4 轻松取消所有位置参数的设置: shift $# 要删除前三个位置参数: shift 3 将“弹出”移出前N个位置参数。通过使用$#,我们可以获得位置参数的总数。因此,该命令弹出所有位置参数。 — 诺亚 source
set -
没有参数就不会改变位置参数。