簡體   English   中英

如何在bash腳本中使用命令行參數讀取內聯參數?

[英]How to read inline parameters using command line args in bash script?

我有一個bash script ,它需要幾個command line args和一個filename作為內聯參數。 我無法讀取內聯參數。

sh test.sh -a a -b b -c c < pwd.txt

test.sh

if [ $# = 0 ] 
then
    echo $USAGE >&2
    exit $STATUS_ERROR_FAIL
fi

# Parse command line options.
while getopts a:b:c: OPT; 
do
case "$OPT" in
a)
    a="$OPTARG"
    ;;
b)
    b="$OPTARG"
    ;;
c)
    c="$OPTARG"
    ;;
\?)
    # getopts issues an error message
    echo $USAGE 
    exit $STATUS_ERROR_FAIL
    ;;
esac
done

shift $((OPTIND-1))
echo "1=$1"

您的腳本運行正常,您的錯誤是

echo "1=$1"

如果要查看參數,則應在case添加echo/print

#!/bin/bash

if [ $# = 0 ]
then
    echo $USAGE >&2
    exit $STATUS_ERROR_FAIL
fi


# Parse command line options.
while getopts a:b:c: OPT;
do
case "$OPT" in
a)
    a="${OPTARG}"
        echo "a[$a]"
    ;;
b)
    b="${OPTARG}"
        echo "b[$b]"
    ;;
c)
    c="${OPTARG}"
        echo "c[$c]"
    ;;
\?)
    # getopts issues an error message
    echo $USAGE
    exit $STATUS_ERROR_FAIL
    ;;
esac
done

shift $((OPTIND-1))

或者您可以在腳本的末尾添加echo/print 。這取決於您的需求

輸出

[shell] ➤ ./t -a 1 -b 2 -c 3
a[1]
b[2]
c[3]

問候

克勞迪奧

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM