小编Chr*_*mbo的帖子

将复杂的多行字符串写入变量的干净方法

我需要将一些复杂的 xml 写入 bash 脚本中的变量。xml 需要在 bash 脚本中可读,因为这是 xml 片段所在的位置,而不是从另一个文件或源读取。

所以我的问题是,如果我有一个很长的字符串,我想在我的 bash 脚本中成为人类可读的,那么最好的方法是什么?

理想情况下,我想要:

  • 不必转义任何字符
  • 让它跨越多行,使其易于阅读
  • 保持缩进

这可以用EOF或其他东西来完成,谁能给我举个例子?

例如

String = <<EOF
 <?xml version="1.0" encoding='UTF-8'?>
 <painting>
   <img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
   <caption>This is Raphael's "Foligno" Madonna, painted in
   <date>1511</date>-<date>1512</date>.</caption>
 </painting>
EOF
Run Code Online (Sandbox Code Playgroud)

bash

120
推荐指数
4
解决办法
24万
查看次数

使用 bash 读取文件的第一行

有谁知道一个简单的单行代码来读取 bash 中文件的第一行?

bash

8
推荐指数
3
解决办法
4万
查看次数

如何在我可以通过 sudo 访问的文件末尾添加一行?

我试过了:

sudo "some string" >> test.txt
Run Code Online (Sandbox Code Playgroud)

但我收到了拒绝许可的警告。

任何人都可以帮忙吗?

shell sudo file-permissions

7
推荐指数
3
解决办法
2859
查看次数

非交互式 SSH 连接上的环境变量?

我正在使用一个名为 vlad 的产品,它与我的 Ubuntu 服务器建立非交互式 ssh 连接,但问题是它看不到任何环境变量。

我一直在疯狂地搜索,但找不到解决方案。我已经尝试将变量添加到我服务器上的用户的 .ssh/environment 文件中,并且还更改了 /etc/ssh/sshd_config 中的设置,但没有任何乐趣。

任何人都可以帮忙吗?

干杯,

克里斯

ubuntu ssh

6
推荐指数
1
解决办法
8749
查看次数

我应该担心 Amazon AWS 世界末日情景吗?

目前,我们的系统完全在 AWS 内部运行。我们对 EBS 进行滚动快照,并经常练习运行恢复。

让我夜不能寐的是把所有的鸡蛋放在一个篮子里。以下是场景:

  • 我们的亚马逊区域发生了一些破坏数据中心的大型事件
  • 有人可以访问我们的 AWS 账户,终止我们的实例并删除我们的所有快照

为了降低这些风险,我正在考虑定期将快照移动到另一个区域的另一个 AWS 账户(使用不同的凭证)。

我的问题是,这是一个足够的预防措施,还是我应该寻找完全从 Amazon 中删除的异地备份?

amazon-web-services

4
推荐指数
2
解决办法
153
查看次数

我的 bash 数组有什么问题?

谁能告诉我为什么这个 bash 脚本在我将它剪切并粘贴到终端时会起作用,但在使用 $ sudo sh server_prep.sh 启动时会抛出“server_prep.sh: 7: Syntax error:”(“unexpected”?

#!/bin/sh

#Packages
apt-get -y install ssh libsqlite3-dev ruby-full mercurial

#Gems
required_gems = ( rake rails sqlite3-ruby )

#Set up directories
[ ! -d /var/www ] && mkdir /var/www
[ ! -d /var/www/apps ] && mkdir /var/www/apps

#install gems manually
if ! which gem >/dev/null; then
    wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
    tar xvfz rubygems-1.3.5.tgz
    ruby rubygems-1.3.5/setup.rb
    ln -s /usr/bin/gem1.8 /usr/bin/gem
    gem update --system

    #Tidy Up
    rm -rf rubygems-1.3.5.tgz rubygems-1.3.5
fi

#Install required gems …
Run Code Online (Sandbox Code Playgroud)

bash

1
推荐指数
2
解决办法
381
查看次数

Vim:我如何 :cd 到 sftp 目录?

我目前是 emacs 用户,但我想我会回来再看看 Vim 以获得乐趣。

我的客户端机器是 Ubuntu,我经常在我的网络中的其他 ubuntu 服务器上工作,emacs 和 tramp 在这方面非常好,我可以通过 sftp 连接到一个文件,然后轻松导航到它的父母/孩子/兄弟姐妹,只是就好像我在处理本地文件系统上的文件一样。

使用 Vim 我可以 sftp 到一个文件,但是导航的东西都不起作用,当我使用 :e 或模糊文件搜索时,vim 仍然认为我回到了客户端机器上。如果我尝试 :cd 到 sftp 目录,我会收到错误消息。

无论如何,无论我是查看 sftp 文件夹还是客户端计算机上的文件夹,我都可以获得相同的文件/文件夹导航吗?

干杯,

克里斯

sftp vim emacs

0
推荐指数
1
解决办法
940
查看次数

标签 统计

bash ×3

amazon-web-services ×1

emacs ×1

file-permissions ×1

sftp ×1

shell ×1

ssh ×1

sudo ×1

ubuntu ×1

vim ×1