我目前正在使用以下功能
!/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脚本相当新,并希望得到一些帮助。
答案 0 :(得分:2)
首先,第一行应该是哈希爆炸#!
,然后是程序的路径,而不仅仅是!
。
在bash中,您不为该函数声明参数。你只需要参数(并检查它是否有效/非空)并使用它。在这种情况下,您可能希望通过$1
从函数中获取第一个参数,并将#hotlink替换为它。
sed -i 's/'"$1"' {height: 200px; ...
在调用函数的部分中,您可以将其称为另一个命令,并且您将为该命令提供#hotlink参数。
fnHotlinkG2R '#hotlink'
答案 1 :(得分: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;"
答案 2 :(得分: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-manual中的quoting-part感兴趣...