shell腳本獲取參數
⑴ 如何獲取傳入給shell腳本的最後一個參數
執行「nano test.sh」創建一個新的shell腳本。
腳本test.sh的內容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"
給新創建的test.sh的腳本賦可執行許可權,命令為「chmod 755 test.sh」。
執行'./test.sh "xiao wang"'命令,可以看到自己編寫腳本的結果「the xiao wang are great man!」。
5
"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱,[$1/$2/...]從1開始為傳遞的參數。
6
linux系統除了提供位置參數還提供內置參數,內置參數如下:
$# ----傳遞給程序的總的參數數目
$? ----上一個代碼或者shell程序在shell中退出的情況,如果正常退出則返回0,反之為非0值。
$* ----傳遞給程序的所有參數組成的字元串。
$n ----表示第幾個參數,$1 表示第一個參數,$2 表示第二個參數 ... $0 ----當前程序的名稱
$@----以"參數1" "參數2" ... 形式保存所有參數
$$ ----本程序的(進程ID號)PID
$! ----上一個命令的PID
⑵ linux shell 腳本讀取用戶輸入的參數如何解決
while read var
do
echo $var
done
這樣也是可以的,沒錯。
想回退的話用 ctrl+backspace
⑶ linux shell腳本讀取用戶輸入的參數
$# 是傳給腳本的參數個數
$0 是腳本本身的名字
$1是傳遞給該shell腳本的第一個參數
$2是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
例如:
#!/bin/sh
echo "arg_num: $#"
echo "shell_name: $0"
echo "first_arg : $1"
echo "second_arg : $2"
echo "args : $@"
⑷ shell中怎麼獲取存儲過程的輸出參數給變數
#下面的代碼是對於從oracle的sqlplus返回變數值給shell的例子
output=`sqlplus -s unitele/lemontea << EOF
set heading off feedback off verify off
drop function test_get_param_value_p;
CREATE OR REPLACE function test_get_param_value_p
(
is_citycode in varchar2
)
return varchar2
is
on_value varchar2(100);
begin
on_value :='100000';
dbms_output.put_line(on_value);
dbms_output.put_line(is_citycode);
return on_value;
end;
/
select test_get_param_value_p('501') from al;
exit
EOF
`
echo "Oracle的輸出變數值:"$output
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
存儲過程 myproc(in_num in number,out_num out number)
sql腳本模板
先編輯一個mysql.sql文件,內容如下:
------------
var nret number;
execute :nret := 0;--初始化
call myproc(in_code,:nret)--執行存儲過程,in_code會被替換掉
/
select 'retcode[' || :nret || ']retcode' from al--顯示結果
/
quit;
-------------
SHELL腳本mysh.sh,內容如下
-------------
#./mysh.sh 123
cd /home/myshell
sed "s/in_code/$1/" mysql.sql > mysql01.sql
#根據sql腳本模板生成實際腳本
sqlplus usr/pwd@db result$1.txt
#執行sql腳本並把結果輸入result$1.txt
echo ok!
-------------
在LINUX下執行./mysh.sh 123,生成result123.txt,myproc輸出參數在'retcode['和']retcode'之間。
⑸ linux shell腳本調用參數傳遞
三個選擇:
1)把參數寫進腳本,運行腳本時不帶參數。
2)使用互動式方法,運行時提示讓用戶手動輸入這些信息。
3)搜索「linux 隱藏進程」。
如果你的用戶名密碼是用於登錄的話,改用密鑰好了:
http://..com/question/324853297.html
⑹ Linux shell 腳本 間接獲取輸入參數的方法
如果是bash,可以用indirect expansion來搞,語法為 ${!var}。
比如
foo=bar
bar=123
echo ${!foo}
會列印 123
再比如下面的腳本,依次列印腳本的各個輸入參數。
#!/bin/bash
var=1
while [ $var -le $# ]
do
echo "Param $var is ${!var}"
let var++
done
不用indirect expansion,也可以用 eval, 比如
#!/bin/bash
var=1
while [ $var -le $# ]
do
eval echo "Param $var is \$$var"
let var++
done
⑺ java怎麼接收shell腳本傳進來的參數
java main方法中的args數組,就是用來接收命令行執行時傳入的參數
⑻ 如何從一個文件讀取shell腳本執行參數
使用source命令可以把一個文件的內容讀取到當前腳本來
例如:
a.conf 裡面有一個變數 aa="1234"
在腳本裡面使用source
#!/bin/bash
source./a.conf(source的時候最好用絕對路徑,我這兒用的相對路徑)
echo$aa
⑼ linux腳本獲取輸入參數
用eval,可以把字元串當作命令來執行:
val=2
eval "x=$$val"
echo $x
2. 用"$@"把參數列表轉化成數組
val=1
x=( "$@" )
echo "${x[$val]}"
注意:數組是從0開始的,也就是 ${x[0]} 對應 $1、${x[1]} 對應 $2,依次類推……
⑽ 如何取得傳入shell腳本的第i個值要求i循環到幾就取第幾個參數
j=1
while[$j-lt$i]
do
shift
done
echo$1
while執行shift i-1次,最後$1就是腳本的第i個值