我在 bash 脚本中运行以下内容:
nohup java server_program.jar &
Run Code Online (Sandbox Code Playgroud)
我希望它开始运行并继续其快乐的方式。但是,出于某种原因,它说它正在忽略输入等并等待额外的返回键击。我可以删除此等待或从 bash 脚本中发送额外的返回吗?
如何在 shell 脚本中处理名称中包含空格的文件。
这是我正在尝试的
find /abc/xyz -name 'BY567*.csv' | while read fname
do
mv "$fname" ./archive/$(basename $fname)-$(date +%Y%m%d-%T)
done
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,它会在空格后去掉文件名。就像文件名是 BY567_Test file.csv 一样,它将更改为 BY567_Test-datetimestamp 而不是 BY567_Test file.csv-datetimestamp。
我写了三个 bash 文件:
incremental_backup full_backupexecution现在我想要另一个 bash 脚本执行以下操作:
if (date is the start of month 1/-/----)
then
invoke `full_back_up`
else
invoke `incremental_backup`
Run Code Online (Sandbox Code Playgroud)
我该如何编写这个脚本?
我有一个 bash 脚本,它下载一个 sql.gz 文件,提取它然后导入它,但是在导入之前,我删除了现有的数据库,然后将新的数据库导入到服务器上。
一切都很好,脚本完成了它应该做的事情,只有一件事:
我的 bash 脚本中有这个语句:
mysqladmin -uroot -ppassword drop dbname
然后等待用户输入y or n以继续。
有什么方法可以输入,Y所以它总是说是并自动完成脚本。我是 bash 脚本的新手(v.new)。
谢谢亲切的问候
我需要循环和 ssh 到多个主机并在每个主机上运行一系列命令。
就像是:
for i in $(jot -w '%02.0f' 14 1)
>do ssh user@host$i sudo -i "command1; command2; command3"
>done
Run Code Online (Sandbox Code Playgroud)
但我无法让它正常工作。我在 Google 上看到了各种各样的东西,比如sudo sh -c管道到 sudo 等,但无法弄清楚。
; jot -w,这大致相当于seq -f在 linux 中提前致谢!
是否有这样的选项,以便可以将 dos2unix 递归应用于匹配文件?
以前从未见过在 BASH 中使用过这个:
pidfile=${PIDFILE-/var/run/service.pid}
我以前从未见过/使用过的${PIDFILE-部分是部分。
我有脚本,它必须通过文件才能从中获取特定行。文件名从变量中获取,例如 $FILENAME ,我们有这样的情况:
猫 /path/$FILENAME
但是当FILENAME==*.some.file出现问题时。文件*.some.file确实存在,但 cat 通过掩码*.some.file(first.some.file second.some.file *.some.file fourth.some.file等等)单引号在路径上列出所有文件,防止包含变量。
任何想法如何cat(或grep)只有一个*.some.file?
我有以下问题:
#!/bin/bash
NUM=`cat accounts | wc -l`;
for i in {1..$NUM}
do
account=`awk "NR==$i" accounts`;
echo -e "\nAccount: $account\n";
sudo ./backup_maildir $account;
done
Run Code Online (Sandbox Code Playgroud)
“accounts”是一个包含常规电子邮件地址的文件,每行一个。
backup_maildir 是期望脚本。
执行主脚本时,第 6 行成功回显当前邮件地址,但下一行没有将该字符串传递给 backup_maildir 脚本。如果 $account 变量是 user@domain.com,则传递给 backup_maildir 的字符串是 {user@domain.com?} ?! 这怎么可能?如何解决?
如何从 bash shell 监视服务端口?
我想监视 Java 服务(在端口 9090 上每分钟一次),然后如果该服务没有响应简单的 HTML 消息,则调用“/etc/init.d/myservice -restart”。
你会怎么做这样的事情?
我的想法是使用类似的东西:
wget -O - --no-check-certificate --progress=dot https://localhost:9090
Run Code Online (Sandbox Code Playgroud)
或者
curl --insecure https://localhost:9090
Run Code Online (Sandbox Code Playgroud)