Shell脚本 + 将字符串写入文件

12

我有一个字符串

server.ip=192.168.1.200

我需要完整地将上述语句写入文件中。

如何实现?

这就是我正在尝试的...

set client_config = xmlrpc_server.properties
echo 'serverurl=http://'${IP}':8000' >> %${client_config}%
echo 'port=/RPC2' >> %${client_config}%

文件中没有添加它。

4个回答

15

这对我有用

$ FOO="192.168.1.1"
$ echo "serverurl=http://$FOO:8000" >> x.conf
$ more x.conf
serverurl=http://192.168.1.1:8000

我正在使用zsh,我也用bash验证过。你在这样做时遇到了什么问题?


GNU bash,版本4.1.9(3)-release(i686-pc-cygwin) - simpatico
“more” 不是必要的,我只是用它来显示内容。还有,什么样的系统没有“more”呢? - Noufal Ibrahim
1
只是提醒一下,echo 命令会在输出文件中添加换行符。 如果不想要它,请使用 printf 命令,它只会将字符串写入文件,而不会附加换行符。 - Dmitry Tokarev
1
@DmitryTokarev 正确。您也可以使用 echo -n - Noufal Ibrahim

5
在BASH中执行以下命令:echo 'server.ip=192.168.1.200' > file

当我将文件名作为变量时,尝试执行此操作时会出现“模棱两可的重定向”错误。 - Vivek

1

或者

set filename=yourfile.txt
echo server.ip=192.168.1.200 >> %filename%
type yourfile.txt

如果您需要将该行附加到文件中,请注意双重 >>

0
client_config = xmlrpc_server.properties
echo "serverurl=http://${IP}:8000" >> $client_config
echo "port=/RPC2" >> $client_config

以上提到的东西起作用了。感谢大家的帮助!


1
你使用的是哪个shell?第一行在任何Borne兼容的shell中都不起作用。而应该省略空格,写成:client_config=xmlrpc_server.properties,而不是client_config = xmlrpc_server.properties。否则,你正在尝试执行“client_confi”命令,其第一个参数为“=”,第二个参数为“xmlrpc_server.properties”。 - Michał Šrajer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接