我在shell腳本中指定了如下變數
USERNAME="$1"
PASSWORD="$2"
DATA="${@:3}"
DATAVERSION="$4"
當我運行腳本時是這樣的:
./abc.sh "name" "password" csv V1
但是當這里 csv 和 V1 被視為第三個引數而不是將 V1 視為第四個引數時,因為我需要 ${@:3} 。
那么如何在將引數傳遞給腳本的同時結束這個 ${@:3} 呢?那么可以讀取引數嗎?
uj5u.com熱心網友回復:
猛擊 命令列:
bash 最強大的功能之一是:您可以在腳本的每個部分附近嘗試行內。
為此,只需嘗試:
set -- "name" "password" csv V1
然后
echo $1
name
echo ${@:3}
csv V1
echo ${@:0:3}
bash name password
echo ${@:1:3}
name password csv
使用 shift
或者 ...
set -- "name" "password" csv V1
然后
userName=$1
shift
passWord=$1
shift
datas=$*
shift
dataVersion=$1
printf '%-12s <%s>\n' userName "$userName" passWord "$passWord" \
datas "$datas" dataVersion "$dataVersion"
將產生:
userName <name>
passWord <password>
datas <csv V1>
dataVersion <V1>
關于tripleee關于大寫變數名的評論,我更喜歡使用lowerCamelCase。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/353229.html
上一篇:選擇特定欄位并將它們寫入新檔案
