shell腳本傳入參數
1. shell腳本如何傳遞給子腳本命令行參數
shell腳本如何傳遞給子腳本命令行參數
shell腳本可以使用getops來分析命令行參數,現在的一個使用場景是:
例如:
父腳本:
父腳本處理一個參數-t,如果-t的值是sub,那麼調用sub.sh子腳本,然後把剩下的參數連同重寫的-t參數傳遞給子腳本sub.sh。
子腳本:
子腳本的參數處理就沒啥特殊的 了,和普通的腳本處理命令行參數一樣。
運行例子:
限制:
2. 如何在php代碼中 執行shell腳本時 給shell腳本傳遞參數
#include <stdio.h>
#include <stdlib.h>
main()
{
system("123.bat haha");
}
.bat里:
echo %1
執行後輸出
haha
所以在system要執行的腳本名後面直接加上參數就可以了
3. shell腳本獲取參數&在線執行shell腳本
本文介紹以下升攜伏2個知識點,為後後續在工作過程中安裝一吵攜鍵安裝腳本打好基礎:
如下shell腳本中傳入的參隱鏈數依次值如下:
如腳本 getopts.sh
執行 ./getopts.sh -a dd -b ,列印如下結果
如腳本 for.sh
有時候shell腳本可以放在http頁面上,不用download,可以直接執行。
https://www.cnblogs.com/klb561/p/8933992.html
https://www.cnblogs.com/faberbeta/archive/2004/01/13/13559686.html
4. shell腳本怎麼傳給其他腳本參數
很明顯,把 read刪掉啊,用常規變數代替,別讓從stdin讀取了,很簡單哦,試試,這樣就可以自動初始化mysql啦。編譯下mysql_secure_installation文件吧。
比如
read passwd
改成
passwd="123123"
就可以了。
因為read的用法也是從鍵盤輸入讀取然後存放到passwd中。
5. java怎麼接收shell腳本傳進來的參數
java main方法中的args數組,就是用來接收命令行執行時傳入的參數
6. 簡述shell的參數
我們可以在執行 Shell 腳本時,向腳本傳遞參數,腳本內獲取參數的格式為:$n。n 代表一個數字,1 為執行腳本的第一個參數,2 為執行腳本的第二個參數,以此類推……
實例
以下實例我們向腳本傳遞三個參數,並分別輸出,其中 $0 為執行的文件名:
#!/bin/bash
echo "Shell 傳遞參數實例!";
echo "執行的文件名:$0";
echo "第一個參數為:$1";
echo "第二個參數為:$2";
echo "第三個參數為:$3";
為腳本設置可執行許可權,並執行腳本,輸出結果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 傳遞參數實例!
執行的文件名:./test.sh
第一個參數為:1
第二個參數為:2
第三個參數為:3
另外,還有幾個特殊字元用來處理參數:
參數處理 說明
$# 傳遞到腳本的參數個數
$* 以一個單字元串顯示所有向腳本傳遞的參數。 如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$$ 腳本運行的當前進程ID號
$! 後台運行的最後一個進程的ID號
$@ 與$*相同,但是使用時加引號,並在引號中返回每個參數。 如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
$- 顯示Shell使用的當前選項,與set命令功能相同。
$? 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。
#!/bin/bash
echo "Shell 傳遞參數實例!";
echo "第一個參數為:$1";
echo "參數個數為:$#";
echo "傳遞的參數作為一個字元串顯示:$*";
執行腳本,輸出結果如下所示:
$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 傳遞參數實例!
第一個參數為:1
參數個數為:3
傳遞的參數作為一個字元串顯示:1 2 3
7. 如何傳遞參數給linux shell 腳本(當腳本從標准輸入而不是從文件獲取時)
sh 絕對路徑/xxx.sh 參數1 參數2 參數3........參數n
---------------------------------------------------------------------------------
如果你保存臨時文件的話,可以使用xargs
比如腳本文件為1.sh,而參數保存在args文件中,用一個命令得到參數內容
cat args
那麼最後可以這樣執行
cat args |xargs sh 1.sh
如果不打算保存臨時文件,那你只好在腳本中寫清楚要如何調用,參數有幾個。
比如你使用2.sh調用1.sh,在2.sh 中寫清楚
1.sh $arg1 $arg2這樣就可以了。
當然腳本中的arg1,arg2也可以是最初的第一個腳本調用傳遞進來的,也可以是硬編碼寫死的。
8. 往shell腳本中傳入參數
參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID