shell传入参数拼接? shell脚本输入参数
如何给shell脚本传参数
执行“nano test.sh”创建一个新的shell脚本。
>02
脚本test.sh的内容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"
>03
给新创建的test.sh的脚本赋可执行权限,命令为“chmod 755 test.sh”。
>04
执行'./test.sh "xiao wang"'命令,可以看到自己编写脚本的结果“the xiao wang are great man!”。
>05
"name=$1"中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/...]从1开始为传递的参数。
>06
linux系统除了提供位置参数还提供内置参数,内置参数如下:
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID
怎么写一个shell脚本传入参数
很简单,写个循环
if [ $# -eq 0 ] ##判断参数是否存在
then
exit ##不存在退出
else
for a in $* ##存在话,取参数放入a中循环
do
b=`echo $a|tr [a-z] [A-Z]` ###将a改成大写
echo "CC"$b ##拼接成功CCA
done
fi
shell字符串拼接
字符串最好放到双引号中,防止中间有空格,如name中就可能存在空格。
改为:
total="${name}""${email}""${other}"
或者 total="$name""$email""$other"
shell脚本中这个for循环中的i和参数var怎么拼接
变量标识符还能带变量?
这样写吧
FTILE_NAME=。。。。。
echo¥FTILE_NAME$i