0

我目前正在使用以下功能

!/bin/bash

#Colour change functions

fnHotlinkG2R()
{
        sed -i 's/#hotlink {height: 200px;width: 200px;background: green;/#hotlink {height: 200px;width: 200px;background: red;/' /var/www/html/style.css
}

#hotlink每次我从脚本中调用函数时,我不想创建多个不同的函数,而是输入不同的函数。

我对 sh 脚本相当陌生,希望得到一些帮助。

4

3 回答 3

2

首先,第一行应该是 hash bang #!,然后是程序的路径,而不仅仅是!.

在 bash 中,您不为函数声明参数。您只需接受参数(并检查它是否有效/不为空)并使用它。在这种情况下,您可能希望从函数中获取第一个参数$1并用它替换#hotlink。

sed -i 's/'"$1"' {height: 200px; ...

在调用函数的部分,您可以像调用另一个命令一样调用它,并将#hotlink 参数提供给该命令。

fnHotlinkG2R '#hotlink'
于 2012-06-11T08:15:20.047 回答
0

你可以像这样使用它:

#!/bin/bash

#Colour change functions

fnHotlinkG2R()
{
    $hotlinkOld = "$1";
    $hotlinkNew = "$2";
    sed -i "s/$hotlinkOld/$hotlinkNew/i" /var/www/html/style.css
}

And call it like this:

fnHotlinkG2R "#hotlink {height: 200px;width: 200px;background: green;"\
   "#hotlink {height: 200px;width: 200px;background: red;"
于 2012-06-11T08:17:42.580 回答
0

首先,你的shebang是错误的。正确的是

#!/bin/bash

其次,在 bash 中,您使用“不同”类型的参数传递。

$0 expands to the name of the shell or shell-script
$1 is the first argument
$2 is the second argument and so on
$@ are all arguments

bash 手册中阅读更多信息

您可能也对bash 手册中的引用部分感兴趣......

于 2012-06-11T08:19:43.787 回答