我想在我的.bash_profile中定義的函數內使用getopts。 這個想法是我想傳遞一些標誌到這個函數來改變它的行爲。 下面的代碼: function t() {
echo $*
getopts "a:" OPTION
echo $OPTION
echo $OPTARG
}
當我調用它是這樣的: t -a bc
我得到這樣的輸出: -a bc
我目前解析選項在那樣的腳本: while getopts ":ia" OptionArgument; do
case $OptionArgument in
i) echo "bli";;
a) echo "bla";;
*) echo "flag not known";;
?) echo "unknown parameter";;
esac
done
我想在bash中使用getopts處理命令行參數。其中一個要求是處理任意數量的選項參數(不使用引號)。 1例(只抓住第一個參數) madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a
第二個示例(我希望它這樣的表現,但無需引述的說法」 madcap:~/projects$ ./getoptz.sh -s
我有簡短的腳本test.pl #!/usr/bin/perl
use locale;
use encoding 'utf-8';
use Getopt::Std;
getopts("dei") or print STDERR "TRALALALALA\n";
print"@ARGV\n";
我需要抑制由getopts的產生Unknown option:信息,而只得到標準錯誤礦TR
我正在嘗試在cygwin的bash腳本中使用getopts。以下是代碼: #!/bin/bash
# Sample program to deal with getopts.
echo "Number of input arguments = $#";
i=0;
while [ ${i} -lt 10 ];
do
i=$[${i}+1];
echo ${i};
如何檢查是否沒有提供所需的參數?我發現switch case中的「:」選項應該足夠用於此目的,但它永遠不會輸入該情況(codeblock)。我是否在開始或其他地方放置「冒號」是無關緊要的。 我的代碼: while getopts :a:b: OPTION;
do
case "$OPTION" in
a)
var1=$OPTARG
;;