linux 中 $* 和 $@ 位置变量有什么区别。我在某处读到使用 $* 是安全风险。是真的吗。
我有一个文件,其中包含一长串以逗号分隔的数字,如下所示:
2,8,42,75,101
Run Code Online (Sandbox Code Playgroud)
获取此文件中数字计数的最简单命令(来自 Unix shell)是什么?在上面的示例中,这将是5.
我正在尝试使用“for”循环列出所有隐藏目录:
for i in ``ls -a | grep '^\.'` `;
do
echo $i
done
Run Code Online (Sandbox Code Playgroud)
问题是循环将一些目录名称一分为二。
例如:ls -a | grep '^\.'给我
.
..
.Deleted Items
.Drafts
.Junk
.Junk E-mail
.Sent
.Sent Items
.Trash
Run Code Online (Sandbox Code Playgroud)
但我的循环给了我:
.
..
.Deleted
Items
.Drafts
.Junk
.Junk
E-mail
.Sent
.Sent
Items
.Trash
Run Code Online (Sandbox Code Playgroud)
如何改进我的脚本,使其不划分目录名称?
我有一个 bash 脚本,它通过 CRON 运行很多命令/工具,比如 convert 或 pdftk。
例如 pdftk 变得“陈旧”或“挂起”并且调用脚本停止继续进行的情况经常发生。
bash 脚本中是否有一种简单的方法(通过陷阱?)来设置执行时间限制或检测特定调用的不活动状态(根据任何定义)?
我对在 linux 中编写脚本完全陌生……所以我想将一些简单的窗口 bat 文件移植到 ubuntu。
第一个文件很容易
setenv.bat
set ANT_HOME=c:\ant\apache-ant-1.7.1
set JAVA_HOME=c:\java
Run Code Online (Sandbox Code Playgroud)
在 linux 中我做了这个,看起来没问题
setenv.sh
#!/bin/bash
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/
ANT_HOME=/usr/share/ant
echo $JAVA_HOME
echo $ANT_HOME
Run Code Online (Sandbox Code Playgroud)
但现在我想移植这个 bat 文件:startserver.bat
call ../config/setenv
call %ANT_HOME%/bin/ant -f ../config/common.xml start_db
call %ANT_HOME%/bin/ant -f ../config/common.xml start_server
pause
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在 linux call ../config/setenv 中做到这一点
感谢您的任何帮助,方向。
试图吐出 catalina.out 的最后 100 行并将它们通过电子邮件发送给我自己。有人可以建议一个关于如何做到这一点的快速oneliner吗?
我只能想出类似的东西:
tail -100 catalina.out | /bin/mail -s blah myemailaddress
Run Code Online (Sandbox Code Playgroud) 将一台服务器的站点移动到另一台服务器时,我犯了一个可怕的错误。我们使用 virtualmin 在新服务器中创建了虚拟主机。但是在将文件从旧服务器恢复到新服务器时,我错误地复制了“/home/VIRTUALHOSTS-NAME/”而不是“/home/VIRTUALHOSTS-NAME/public_html”中的所有文件。现在我必须将所有文件从虚拟主机的主目录移动到 public_html 目录,除了几个默认文件夹,如:fcgi-bin、public_html、awstats、cgi-bin 等。这可以用 shell 脚本或任何带有管道的命令自动化吗?
有没有人写过一个自我看门狗脚本并且可以分享它的解决方式?我在其中一台路由器上安装了 DD-WRT,并且只能制作一个启动脚本。问题是跑不起来。如果我通过 telnet 登录并手动启动它,效果很好。所以我需要添加一个 cron 规则来运行它,但不能多次运行。我正在考虑使用:
if [`ps | grep [c]ustom.sh` -gt 1]; then
exit;
else
...
fi
Run Code Online (Sandbox Code Playgroud)
你知道有什么其他方法可以做到这一点吗?
如何使用脚本更改 Windows 服务器的主机名?
在 Linux 服务器上执行此操作非常简单(更改几个文件条目,然后运行hostname命令),但我不知道如何或即使可能以自动方式更改 Windows 上的主机名。
具体来说,我正在寻找一种在 Windows 2008 R2 上执行此操作的方法,但通用方法也很棒。
我找到了 XP 的技术说明,但还没有在 2k8 机器上尝试过 - 它仍然有效吗?
整个上下文是能够在部署后从 VMware 模板更改服务器的名称,而无需使用自定义规范。
假设我们在 Linux shell 中在一行上运行两个程序,如下所示:
who -r; date
Run Code Online (Sandbox Code Playgroud)
我应该添加什么以获得一行输出?