从有关的printf是否是这个问题,一个内置的佳日,谈到这个答案是报价POSIX标准。
答案指出,POSIX 搜索顺序是查找所需命令的外部实现,然后,如果 shell 已将其实现为内置,则运行内置。(对于不是特殊内置函数的内置函数。)
为什么 POSIX 要求在允许运行内部实现之前存在外部实现?
似乎……随意,所以我很好奇。
这是在两个问题上触摸“检查文件或文件夹已被修补”和“制作patch
返回跳过已经应用的补丁时0 ”既不但是有一个令人满意的答案。
我正在编写脚本并想测试以下补丁:
完全应用:继续
部分应用:退出
未应用:如果可以成功应用则继续,否则退出
问题是处理部分应用的情况:
mkdir test && cd test
cat << EOF > foobar.patch
--- /dev/null
+++ foo
@@ -0,0 +1 @@
+foo
--- /dev/null
+++ bar
@@ -0,0 +1 @@
+bar
EOF
patch --forward -i foobar.patch
rm foo
Run Code Online (Sandbox Code Playgroud)
所以 bar 存在但 foo 不存在,因为在某些时候它被删除了。现在,如果我在试运行中向前应用补丁,退出代码为 1,因为它没有成功应用。
$ patch --dry-run --forward --force -i foobar.patch
checking file foo
The next patch would create the file bar,
which already exists! Skipping patch.
1 out of 1 …
Run Code Online (Sandbox Code Playgroud)