我正在阅读 Unix 中的位置参数,然后我找到了这个信息:
shell 允许一个命令行包含至少 128 个参数;然而,shell 程序仅限于在给定时间仅引用 9 个位置参数,即 $1 到 $9。您可以使用 shift 命令解决此限制。
所以我创建了一个简单的 shell 脚本file
,如下所示:
#! /bin/bash
echo $14
Run Code Online (Sandbox Code Playgroud)
然后像下面这样运行它:
./file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Run Code Online (Sandbox Code Playgroud)
我得到了 14 个!
那么,如果 shell 在不使用shift
命令的情况下不允许超过 10 个参数(从 $0 到 $9),那怎么可能呢?
我正在阅读 Unix 中的 echo 命令,但我在 -e 选项中对反斜杠 ( \
) 转义字符感到困惑,我运行了以下两个示例:
echo "hello\\\\world"
Run Code Online (Sandbox Code Playgroud)
输出: hello\\world
现在使用 -e 运行相同的命令:
echo -e "hello\\\\world"
Run Code Online (Sandbox Code Playgroud)
输出: hello\world
那么带和不带-e
选项的反斜杠字符的含义是什么?
问候