2012-07-21 52 views
13

我花了一些質量時間搜索POSIX standard for the shellsource.命令,並且在這一點上我確信他們不在那裏。是shell的`source` POSIX標準嗎?

有沒有不支持.的shell?在當前環境中執行shell腳本的POSIX標準方式是什麼(即,不產生子shell,因此如果腳本在調用shell中存在export VAR=value那麼VAR)?

我可能會丟失一些東西很明顯,但事實證明,.是不是很容易谷歌...

+0

C shell shell系列不太可能支持'.'作爲'source'的同義詞,這是它們編寫相同操作的原生方式。 – 2012-07-21 04:16:51

回答

13

它的存在"dot"下。

NAME

點 - 在當前的環境

提要

執行命令。 文件

[等]

+2

是的,'.'命令是標準的。但請注意,在bash和其他一些現代shell中可用的'source'別名不是* POSIX的一部分。 – 2017-05-16 14:21:12

14

.被標準化(POSIX 20042008)。

source是非標準的,特別在ashdashpdksh或不支持(所以大概它不是在原始Korn外殼要麼)。也就是說,這是一種巴斯主義。

+2

C shell使用'source'代替Bourne shell使用的'''.'。 Korn shell使用'.'來與Bourne shell兼容。由於原因尚不清楚,它被導入到'bash'中,但它使C shell移民感到賓至如歸,並且比''更容易索引。[dot](http://pubs.opengroup.org/onlinepubs/9699919799 /utilities/V3_chap02.html#dot)。 – 2012-07-21 04:14:49