mysqladmin -uroot create foo如果foo存在,则返回退出状态 1 ,否则返回0,当然,如果数据库不存在,它也会创建数据库。是否有一些简单的方法可以简单地检查数据库是否存在?
我在 EC2 实例上有一个脚本可以远程启动另一个实例。
一旦此实例完全加载(完成启动),我希望它自动运行 bash 脚本,执行此操作的最佳方法是什么?
我需要一切都完全启动,基本上 bash 脚本运行图像转换脚本(使用 ImageMagick 并执行几次“wget”命令)
目前,该脚本位于此处:
/home/root/beginProcess.sh
我可以通过执行手动启动它
bash beginProcess.sh
RHEL-6.2-Starter-EBS-i386
还有一个 EBS 卷附加于此,如果有帮助,谢谢!
我有一个用户没有对任何点文件中的 $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。
这里发生了什么?
假设我有一个foo带有文件名参数的命令:foo myfile.txt. 令人讨厌的是,foo不从标准输入读取。我想将另一个命令的结果传递给它,而不是实际的文件(实际上,pv,它将捕获文件并输出进度表作为副作用)。
有没有办法做到这一点?我的技巧包中似乎没有任何东西可以做到。
(foo在这种情况下是一个 PHP 脚本,我相信它会按顺序处理文件)。
我正在使用 Ubuntu 和 Bash
编辑抱歉,问题描述有点不清楚,但这是我想要的答案:
pv longfile.txt | foo /dev/stdin
Run Code Online (Sandbox Code Playgroud)
现在我看到它非常明显。
我发现在与我合作的新公司中,我经常不得不访问生命周期相对较短的 linux 服务器。在这些服务器中的每一个上,我都有一个帐户,但是每当创建一个新帐户时,我都必须通过我的 .bashrc 进行转移。然而,有可能在大约一个月的时间内该服务器将不再存在。我还必须在短时间内(几分钟)访问许多其他服务器,通过我的 .bashrc 进行传输是不值得的,但由于我在很多服务器上工作,这加起来浪费了很多时间。
我不想更改服务器上的任何内容,但我想知道是否有办法拥有“每个连接”的 .bashrc,因此每当我通过 SSH 连接到服务器时,我的设置都将用于该会话。
如果这是可能的,如果我可以对其他配置文件(如 gitconfig 文件)做同样的事情,那就太好了。
如何screen用于启动新会话并在该会话中运行命令而不终止该会话?
screen -S myScreenName runSomething
Run Code Online (Sandbox Code Playgroud)
我试过上面的命令,它说
[screen is terminating]
Run Code Online (Sandbox Code Playgroud)
它是否运行了命令然后杀死了屏幕?我希望在运行命令后分离屏幕而不是杀死它。那怎么办呢?
我需要运行脚本,这需要很长时间才能执行,或者我只想让它永远运行。我不能只通过 SSH 连接到我的机器,因为当我断开连接时它会停止运行。
有没有办法运行不依赖于启动它的 shell 的脚本?
我正在使用 Ubuntu 9.04。
在 bash 中调用pushd/popd后,它将打印出当前目录堆栈。有什么办法可以防止这种行为,让它“相当”地行动?命令中的这种噪音在 unix 工具中并不常见。
事实证明 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 文件(临时)的情况下解决它?