Function UNIX:将参数传递给shell函数
我有将文件打印到选定打印机的用户。 我不想为每台打印机创建一个函数,我只希望有一个函数,并传递要打印的文件和想要的打印机。 当然,下面的代码不起作用。 有人能给我指出正确的解决办法吗Function UNIX:将参数传递给shell函数,function,shell,unix,Function,Shell,Unix,我有将文件打印到选定打印机的用户。 我不想为每台打印机创建一个函数,我只希望有一个函数,并传递要打印的文件和想要的打印机。 当然,下面的代码不起作用。 有人能给我指出正确的解决办法吗 list2=`ls /spooldocs/sch/sch* |sort` Print $list2 $printer2 Print(){ for job in $1 ; do if [[ $job == *503374*.pcl ]]; then lp -d$2 $job lp
list2=`ls /spooldocs/sch/sch* |sort`
Print $list2 $printer2
Print(){
for job in $1 ; do
if [[ $job == *503374*.pcl ]]; then
lp -d$2 $job
lp -d$2 $job
fi
lp -d$2 $job
lp -d$2 $job
lp -d$2 $job
lp -d$2 $job
done
}
您可以使用
shift
向左移动位置参数。您可以使用for var迭代位置参数;做完成
:
#!/bin/sh
Print () {
printer=$1
shift
for job; do
echo lp "-d$printer" "$job"
done
}
Print laserjet foo bar baz
样本运行:
$ ./x.sh
lp -dlaserjet foo
lp -dlaserjet bar
lp -dlaserjet baz
您可以使用
shift
向左移动位置参数。您可以使用for var迭代位置参数;做完成
:
#!/bin/sh
Print () {
printer=$1
shift
for job; do
echo lp "-d$printer" "$job"
done
}
Print laserjet foo bar baz
样本运行:
$ ./x.sh
lp -dlaserjet foo
lp -dlaserjet bar
lp -dlaserjet baz
您需要在使用外壳函数之前定义它们。您需要在使用它们之前定义外壳函数。我还发现简单地调用Print“$list2”$printer2有效(添加了“”),我还发现简单地调用Print“$list2”$printer2有效(添加了“”)