Shell

checkbashisms:“類型”有什麼問題?

  • September 3, 2021
#!/bin/sh

foo() {
  echo "in foo"
}

type foo

checkbashisms.pl明明不喜歡type,為什麼?

$ checkbashisms.pl foo.sh
possible bashism in foo.sh line 7(type):
type foo

不是POSIX嗎?但是所有常見的shell都支持它(即bash, zsh, dash, busybox sh, mksh; 即使在ksh; 也許只是csh不支持它),難道沒有辦法抑制這個警告嗎?

typePOSIX 的一部分,但作為 X/Open Systems Interfaces 選項 (XSI) 的一部分。手冊頁明確說明checkbashisms

請注意,在這種情況下,bashism 的定義大致等同於“POSIX 不需要支持的 shell 功能”;這意味著在 POSIX 的可選部分(例如 XSI 或使用者可移植性)下可能允許標記的某些問題。

Sotype被標記,因為它是一個可選功能。

checkbashisms除了從腳本中刪除它們之外,我不知道有任何方法可以禁用 中的特定警告。

引用自:https://unix.stackexchange.com/questions/667288