日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sh执行文件 参数传递_Shell脚本传参数方法总结

發布時間:2023/12/13 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sh执行文件 参数传递_Shell脚本传参数方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、接收固定長度的參數

[root@svn shell_example]# cat params.sh

#!/bin/bash

#傳參測試腳本

echo "My name is `basename $0` -I was called as $0"

echo "My first parameter is : $1"

echo "My second parameter is : $2"

空參數執行

[root@svn shell_example]# sh params.sh

My name is params.sh -I was called as params.sh

My first parameter is :

My second parameter is :

傳遞2個參數執行

[root@svn shell_example]# sh params.sh one two

My name is params.sh -I was called as params.sh

My first parameter is : one

My second parameter is : two

二、那如果還有參數怎么辦呢?還要一個個加上來嗎?答案是否定的

以下用法應該不陌生,就是直接執行腳本本身,沒有附帶任何參數,那么腳本講拋出幫助信息.即怎么使用此腳本.見紅字部分

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

代碼如下

[root@svn shell_example]# cat params_v2.sh

#!/bin/bash

# 這是個測試腳本傳參的測試例子

echo "My name is `basename $0` -I was called as $0"

echo "I was called with $# parameters."

if [ "$#" -eq "2" ];then

echo "My first parameter is $1"

echo "My second parameter is $2"

else

echo "Usage: `basename $0` first second"

echo "You provided $# parameters,but 2 are required."

fi

詳細的執行過程如下

不傳參數執行

[root@svn shell_example]# sh params_v2.sh

My name is params_v2.sh -I was called as params_v2.sh

I was called with 0 parameters.

Usage: params_v2.sh first second

You provided 0 parameters,but 2 are required.

傳遞3個參數執行

[root@svn shell_example]# sh params_v2.sh one two three

My name is params_v2.sh -I was called as params_v2.sh

I was called with 3 parameters.

Usage: params_v2.sh first second

You provided 3 parameters,but 2 are required.

傳遞2個參數執行

[root@svn shell_example]# sh params_v2.sh one two

My name is params_v2.sh -I was called as params_v2.sh

I was called with 2 parameters.

My first parameter is one

My second parameter is two

問題來了,要是后期還要加參數怎么辦呢?或者我也不確定到底會傳幾個參數.

解決方法如下,詳細執行結果如下

[root@svn shell_example]# cat manyparams.sh

#!/bin/bash

#這是個測試腳本傳N個參數的例子

echo "我的名字是 `basename $0` - 我是調用自 $0"

echo "我有 $# 參數"

count=1

while [ "$#" -ge "1" ];do

echo "參數序號為 $count 是 $1"

let count=count+1

shift

done

一個參數執行

[root@svn shell_example]# sh manyparams.sh one

我的名字是 manyparams.sh - 我是調用自 manyparams.sh

我有 1 參數

參數序號為 1 是 one

5個參數執行

[root@svn shell_example]# sh manyparams.sh one two three four five

我的名字是 manyparams.sh - 我是調用自 manyparams.sh

我有 5 參數

參數序號為 1 是 one

參數序號為 2 是 two

參數序號為 3 是 three

參數序號為 4 是 four

參數序號為 5 是 five

總結

以上是生活随笔為你收集整理的sh执行文件 参数传递_Shell脚本传参数方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。