首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Bash Shift 使用範例速查

     編輯:更多程式設計知識

基本語法

shift [n]

將位置參數左移 n 位(預設 1),$1 被捨棄,$2→$1,$# 遞減。

參數變數速查

變數說明
$0腳本名稱
$1 ~ $9第 1~9 個參數
${10} ...第 10 個以後需用大括號 (Bash 3.0+)
$@所有參數(保持分隔)
$*所有參數(單一字串)
$#參數總數

常見模式

1. 逐一處理所有參數

#!/bin/bash
until [ -z "$1" ]; do
    echo "處理: $1"
    shift
done

2. 選項解析 + 位置參數

#!/bin/bash
verbose=0
while [ $# -gt 0 ]; do
    case "$1" in
        -v|--verbose) verbose=1; shift ;;
        -o|--output)  output="$2"; shift 2 ;;
        --) shift; break ;;
        -*) echo "錯誤選項: $1"; exit 1 ;;
        *) break ;;
    esac
done
echo "verbose=$verbose, output=$output, 剩餘參數: $@"

3. 計算所有數值參數總和

#!/bin/bash
sum=0
until [ -z "$1" ]; do
    sum=$((sum + $1))
    shift
done
echo "總和: $sum"

注意事項

  • shift 若超過參數總數會報錯;建議搭配 until [ -z "$1" ] 或 while [ $# -gt 0 ] 迴圈。
  • 函式內 shift 僅影響函式自身的位置參數。
  • 若需保留原始參數,先複製:args=("$@")。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved