Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

1
使用inotify监视目录但无法正常工作100%
我已经编写了一个bash脚本来监视特定目录/root/secondfolder/: #!/bin/sh while inotifywait -mr -e close_write "/root/secondfolder/" do echo "close_write" done 当我创建一个名为fourth.txtin 的文件/root/secondfolder/并将其写入内容,保存并关闭时,它输出以下内容: /root/secondfolder/ CLOSE_WRITE,CLOSE fourth.txt 但是,它不会回显“ close_write”。这是为什么?

3
在管道中调用我的函数时未设置环境变量
我具有以下递归函数来设置环境变量: function par_set { PAR=$1 VAL=$2 if [ "" != "$1" ] then export ${PAR}=${VAL} echo ${PAR}=${VAL} shift shift par_set $* fi } 如果我自己调用它,它将设置变量并回显到stdout: $ par_set FN WORKS FN=WORKS $ echo "FN = "$FN FN = WORKS 将stdout重定向到文件也可以: $ par_set REDIR WORKS > out cat out REDIR=WORKS $ echo "REDIR …

2
包含括号的文件名错误
当我试图从更改文件名old.file(1).gz来new.file.gz,它说语法错误,我使用Ubuntu 12.04。 mv old.file(1).gz new.file.gz bash: syntax error near unexpected token `('
10 bash  shell  quoting 

4
终止每个后台进程
我有一些Stopped后台流程。 kill $(jobs -p)而且kill `jobs -p`没有效果 kill %1,kill %2等成功终止单个进程 如何使用一个命令杀死每个后台进程? 另外,为什么前两个命令对我不起作用? 我正在运行Linux Mint 15,64位

2
炮弹可以更具“进攻性”吗?
我的Gentoo Linux是在启用了冒犯性 USE 标志的情况下编译的: # sudo su - Password: Hold it up to the light --- not a brain in sight! Password: 也可以根据进攻程度选择运势: # fortune -o kernelcookies | cowsay -b _________________________________________ / /* This is total bullshit: */ \ | | \ linux-2.6.6/drivers/video/sis/init301.c / ----------------------------------------- \ ^__^ \ (==)\_______ (__)\ …
10 shell  cowsay 

1
如何查找文件名中包含换行符的文件?
我正在尝试查找文件名中包含换行符的文件。但是我不知道该使用哪种模式。 以下工作有效,但如果要在缩进代码中使用它,则不是很有用。 find . -name '* *' 我尝试了这两个,但他们只成功找到了包含字母n的文件名: find . -name '*\n*' find . -name "*\n*" 然后,我发现了如何编写反斜杠转义序列并尝试了此操作: find . -name "*$'\n'*" 但这什么也找不到。我应该如何写模式?
10 shell  find  patterns 

6
正则表达式如何从文件中取出多行?
正则表达式如何从文件中取出多行? 我经常想通过正则表达式获得多行/修改多行。一个例子: 我正在尝试读取XML / SGML文件的一部分(它们不一定格式正确或语法可预测,因此正则表达式比适当的解析器更安全。此外,我希望能够完全做到这一点在外壳脚本(在Solaris和Linux上运行)中仅知道一些关键词的非结构化文件。 XML示例: <tag1> <tag2>bar</tag2> </tag1> <tag1> <tag2>foo</tag2> </tag1> 从这里,我想阅读<tag1>如果其中包含foo某处。 像一个正则表达式(<tag1>.*?foo.*?</tag1>)应该给予正确的部分,但是等工具grep,并sed只为我的单线条的工作。我怎样才能得到 <tag1> <tag2>foo</tag2> </tag1> 在这个例子中?
10 shell  sed  grep 



4
获取垂直光标位置
这听起来可能很奇怪,但是我知道如何像这样在Bash中设置垂直光标位置: echo -e "\e[12H" 这会将光标移动到第12行(从1开始)。 那么如何使用linux bash获取光标位置(行号)呢?如果我可以简单地将此值存储在变量中,以便可以进行计算,则将很有帮助。 编辑: 这是我得到的错误: $ sh rowcol.sh -en read: 9: Illegal option -d test.sh: 12: Bad substitution
10 shell  terminal 

1
您可以在Bash中使用几种不同的方式创建“别名”?
我只知道两种方式:alias foo=bar和function foo() { bar }。 我问的原因是-突然在我的bash会话之一中-我无法运行ln命令,因为bash出错了-bash: /usr/local/.../ln: No such file or directory(其中/usr/local/.../是PATH环境变量中的条目之一)。 但这不是PATH问题,因为如果我运行which ln它,它会输出预期的二进制文件/usr/bin/ln(如果我指定了绝对路径,则可以很好地运行)。 我还检查了ln我的alias和function声明,没有任何内容: $ declare -f | grep ln $ alias | grep ln 该问题仅在一次bash会话中发生。如果我启动一个新的shell,它会再次正常工作,但是我想知道是在bash的这一特定会话中突然导致此问题的原因。 关于什么可能导致此的任何想法?
10 bash  shell  alias 


3
如何使用scp下载文件夹中的最新文件?
我想运行一次scp传输,将某个目录中的最新(最新)文件下载到我的本地目录中。 像这样: 来源:root@rimmer.sk:/home/rimmer/backups/ 目的地:/home/rimmer/backups/ 虽然仅在中获取最新文件,而不是所有文件backups。
10 shell  ssh  file-copy 

5
如何使`cd dir / filename`带我到dir /?
我发现能够cd与file参数一起使用非常方便。 cd myDirectory/anyname.anyExtension 相当于 cd myDirectory/ 实现此行为的最佳别名或函数是什么? 编辑:对不起,我没有在第一名提到它:我用zsh
10 shell  cd-command 

4
从命名管道获取标准输入
我想做的是在终端窗口中运行python,并从命名管道重定向它的stdin。然后,我在另一个终端中写入命名管道,并在python上执行该命令。 1号航站楼: mkfifo p1 python < p1 2号航站楼: echo -n "print \"Hello World\"" > p1 发生的是-python打印Hello World并退出。我想做的是保持python运行以接受下一条命令。如何在外壳中执行此操作?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.