Shell
checkbashisms:“類型”有什麼問題?
#!/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
不支持它),難道沒有辦法抑制這個警告嗎?
type
是POSIX 的一部分,但作為 X/Open Systems Interfaces 選項 (XSI) 的一部分。手冊頁明確說明checkbashisms
請注意,在這種情況下,bashism 的定義大致等同於“POSIX 不需要支持的 shell 功能”;這意味著在 POSIX 的可選部分(例如 XSI 或使用者可移植性)下可能允許標記的某些問題。
So
type
被標記,因為它是一個可選功能。
checkbashisms
除了從腳本中刪除它們之外,我不知道有任何方法可以禁用 中的特定警告。