说我有一些命令:
somecommand "$@"
Run Code Online (Sandbox Code Playgroud)
$@ 的意义是什么?这一定是一些我不熟悉的 unix 技巧。不幸的是,因为它都是标点符号,我也不能用谷歌搜索。
以下shell脚本有什么问题?我越来越
[: too many arguments
Run Code Online (Sandbox Code Playgroud)
错误
#!/bash
var1=10;
var2=20;
if [ $var1 % 2 -eq 0 ] -a [ $var2 %5 -eq 0 ];
then
#something
fi
Run Code Online (Sandbox Code Playgroud) 是否可以使用配置文件创建.sh外壳或.command文件?
我需要通过终端备份网站,并能够将一些数据放入配置文件,并让 shell 执行它。
例如,用户名、密码、ssh id 等。
#!/bin/bash
ssh admin@host.com "tar cjvf webfilesbackup-date-`date +%Y%m%d`.tar.bz2 public_html/"
ssh admin@host.com "mysqldump -u user_admin -ppass database_1 > databasebackup-`date +%Y%m%d`-db.sql"
scp admin@host.com:webfilesbackup-date-`date +%Y%m%d`.tar.bz2 ~/backup/
scp admin@host.com:databasebackup-`date +%Y%m%d`-db.sql ~/backup/
ssh admin@host.com "rm -f webfilesbackup-date-`date +%Y%m%d`.tar.bz2"
ssh admin@host.com "rm -f databasebackup-`date +%Y%m%d`-db.sql"
Run Code Online (Sandbox Code Playgroud) 我想用sed这个丑陋的 RE将千位分隔符插入到一个数字序列中sed -e :a -e 's/\(.*[0-9]\)\(\([0-9]\{3\}\)\(,[0-9]\{3\}\)*\(\.[0-9]*\)\)/\1,\2/;ta' [filename]。
有没有更优雅的解决方案?
================================================== ==========
编辑
我刚才省略了一件事:数字可能有小数点。举个例子:
123456.7890
我想要分离 123,456.7890 后的结果
谢谢和最好的问候。
我使用的是 Ubuntu 11.10,在使用终端时出现以下错误:
lee@theia:~$ regedit/home/lee/desktop/Direct3D.reg
bash: regedit/home/lee/desktop/Direct3D.reg: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我想创建一个名为10的文件夹foo1java,foo2c,foo3python,等。
我试过了,但它创建了太多目录:
mkdir foo{1..3}{java,c,python}
foo1c/ foo1python/ foo2java/ foo3c/ foo3python/
foo1java/ foo2c/ foo2python/ foo3java/
Run Code Online (Sandbox Code Playgroud)
我只想将数字映射到语言:1to java、2to c、3topython等。
我该怎么做呢?
我想在当前文件夹及其子文件夹中搜索大于 200 kB 或小于 120 kB 的所有 .exe 文件。然后我想将它们移动到另一个名为“文件夹”的文件夹中,并在该文件夹中无限执行名为“executable.exe”的文件,并显示有关其内存消耗的一些信息。
有任何想法吗?
我正在使用 Linux Mint。根据Indrek 的回答,我使用 find 命令搜索“.exe”文件。
find . -name "*.exe" \( -size +200k -o -size -120k \)
Run Code Online (Sandbox Code Playgroud)
现在我想要做的是将这些文件移动到另一个名为“myFolder”的文件夹中,然后我必须执行该文件夹中名为“MyExec.exe”的任何文件
现在我正在 GNU 屏幕中运行一个进程。屏幕以命令开头,screen -dmS screenname附加以screen -r screenname. 一个进程在 screen 会话中启动,并在一段时间后被终止。
当里面的进程结束时,我如何让屏幕终止?
注意:我不喜欢循环,所以我正在寻找替代方法。有时我会以一个& exit跟随它的方式开始这个过程,但是如果我kill -9 pid在这个过程中使用它就永远不会执行。
我正在使用 CentOS 6.2。这是我的~/.bash_profile内容:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它来获取它时
source .bash_profile
Run Code Online (Sandbox Code Playgroud)
它返回
if: Expression Syntax.
Run Code Online (Sandbox Code Playgroud)
为什么?
这是我的 .bashrc 文件:
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
Run Code Online (Sandbox Code Playgroud) 我以前在一些目录中看到过这个。如果您知道文件的名称,您可以在哪里打开和编辑它,但不能ls在目录中,因此如果您不知道文件的名称,您就无法真正对它做任何事情?
bash ×10
shell ×4
linux ×3
unix ×2
gnu-screen ×1
linux-mint ×1
macos ×1
permissions ×1
regex ×1
sed ×1
ssh ×1
ubuntu-11.10 ×1