标签: bash

从 shell 脚本中,如何检查 MySQL 数据库是否存在?

mysqladmin -uroot create foo如果foo存在,则返回退出状态 1 ,否则返回0,当然,如果数据库不存在,它也会创建数据库。是否有一些简单的方法可以简单地检查数据库是否存在?

mysql shell bash database

26
推荐指数
4
解决办法
5万
查看次数

在 EC2 实例启动后运行 bash 脚本

我在 EC2 实例上有一个脚本可以远程启动另一个实例。

一旦此实例完全加载(完成启动),我希望它自动运行 bash 脚本,执行此操作的最佳方法是什么?

我需要一切都完全启动,基本上 bash 脚本运行图像转换脚本(使用 ImageMagick 并执行几次“wget”命令)

目前,该脚本位于此处:

/home/root/beginProcess.sh

我可以通过执行手动启动它

bash beginProcess.sh

RHEL-6.2-Starter-EBS-i386

还有一个 EBS 卷附加于此,如果有帮助,谢谢!

linux bash boot amazon-ec2

25
推荐指数
2
解决办法
7万
查看次数

为什么 ssh 远程命令的 $PATH 与交互式 shell 的不同?

我有一个用户没有对任何点文件中的 $PATH 进行任何修改:这正是系统默认设置。从登录外壳:

$ ssh example.com
user@example.com:~$ cat /tmp/hello.hs
#!/bin/bash

echo "$SHELL"
echo "$PATH"

user@example.com:~$ /tmp/hello.hs
/bin/bash
/usr/local/bin:/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)

完全按照 中的规定/etc/profile。我觉得这很出乎意料:

$ ssh example.com '/tmp/hello.sh'
/bin/bash       
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
Run Code Online (Sandbox Code Playgroud)

就像我说的,没有修改 $PATH in ~/.bashrc,也没有修改/etc/bash.bashrc. 也没有~/.ssh/environment。该ssh(1)声明环境变量PATH

设置为默认 PATH,如编译 ssh 时所指定。

但是来自 StackOverflow 的这个线程和这个邮件列表文章表明,我应该能够通过修改 /etc/profile、shell 启动文件之一等来影响给定命令的 $PATH。

这里发生了什么?

debian ssh bash

24
推荐指数
2
解决办法
3万
查看次数

将管道传递给需要文件名的命令

假设我有一个foo带有文件名参数的命令:foo myfile.txt. 令人讨厌的是,foo不从标准输入读取。我想将另一个命令的结果传递给它,而不是实际的文件(实际上,pv,它将捕获文件并输出进度表作为副作用)。

有没有办法做到这一点?我的技巧包中似乎没有任何东西可以做到。

foo在这种情况下是一个 PHP 脚本,我相信它会按顺序处理文件)。

我正在使用 Ubuntu 和 Bash

编辑抱歉,问题描述有点不清楚,但这是我想要的答案:

pv longfile.txt | foo /dev/stdin
Run Code Online (Sandbox Code Playgroud)

现在我看到它非常明显。

bash pipe command

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

如何在 SSH 登录时使用自定义 .bashrc 文件

我发现在与我合作的新公司中,我经常不得不访问生命周期相对较短的 linux 服务器。在这些服务器中的每一个上,我都有一个帐户,但是每当创建一个新帐户时,我都必须通过我的 .bashrc 进行转移。然而,有可能在大约一个月的时间内该服务器将不再存在。我还必须在短时间内(几分钟)访问许多其他服务器,通过我的 .bashrc 进行传输是不值得的,但由于我在很多服务器上工作,这加起来浪费了很多时间。

我不想更改服务器上的任何内容,但我想知道是否有办法拥有“每个连接”的 .bashrc,因此每当我通过 SSH 连接到服务器时,我的设置都将用于该会话。

如果这是可能的,如果我可以对其他配置文件(如 gitconfig 文件)做同样的事情,那就太好了。

ssh configuration bash bashrc

24
推荐指数
2
解决办法
3万
查看次数

Bash 脚本倒计时 5 分钟显示在单行上

我想倒计时 5 分钟,每秒更新一次并在同一行显示结果。这甚至可以用 Bash 脚本编写吗?

bash

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

启动 Unix 屏幕,运行命令,分离

如何screen用于启动新会话并在该会话中运行命令而不终止该会话?

 screen -S myScreenName runSomething
Run Code Online (Sandbox Code Playgroud)

我试过上面的命令,它说

[screen is terminating]
Run Code Online (Sandbox Code Playgroud)

它是否运行了命令然后杀死了屏幕?我希望在运行命令后分离屏幕而不是杀死它。那怎么办呢?

ubuntu bash gnu-screen

24
推荐指数
3
解决办法
5万
查看次数

如何通过SSH运行脚本,当我关闭连接时不会结束?

我需要运行脚本,这需要很长时间才能执行,或者我只想让它永远运行。我不能只通过 SSH 连接到我的机器,因为当我断开连接时它会停止运行。

有没有办法运行不依赖于启动它的 shell 的脚本?

我正在使用 Ubuntu 9.04。

ubuntu ssh bash nohup gnu-screen

23
推荐指数
3
解决办法
5万
查看次数

我可以调用 pushd/popd 并阻止它打印堆栈吗?

在 bash 中调用pushd/popd后,它将打印出当前目录堆栈。有什么办法可以防止这种行为,让它“相当”地行动?命令中的这种噪音在 unix 工具中并不常见。

linux unix shell bash command-line-interface

23
推荐指数
1
解决办法
1万
查看次数

Rsync 似乎与 .bashrc 不兼容(导致“你的外壳干净吗?”)

事实证明 rsync 无法与具有 .bashrc 文件的远程服务器一起使用?

在本地客户端运行 rsync 时得到:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(180) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)

正如这里建议的那样删除服务器上的 .bashrc 解决了这个问题。如何在不删除 .bashrc 文件(临时)的情况下解决它?

bash rsync

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