如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)

2024-11-15 14:08:57
推荐回答(4个)
回答1:

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也可以是最初的第一个脚本调用传递进来的,也可以是硬编码写死的。

回答2:

sh filename1.sh `cat filename2.txt`

·是反引号,esc下面的键

回答3:

sh xxx.sh a b c < file
cat <&0
这样就可以处理标准输入的内容了

回答4:

[root@localhost ~]# cat shift.sh
#!/bin/bash
a=''
b=''
c='ccc'
while [ -n "$1" ]
do
case "$1" in
-a) a="$2"
shift ;;
-b) b="$2"
shift ;;
-c) c="$2"
esac
shift
done
out=${b}_${a}_${c}
echo ${out}
[root@localhost ~]# sh shift.sh -c ccc -b bbb -a aaa
bbb_aaa_ccc