Questions tagged «shell»

术语“外壳”是指通常与Unix和Linux操作系统相关联的一类基于文本的交互式命令解释器。对于有关shell脚本的问题,请使用更具体的标签,例如'bash','powershell'或'ksh'。没有特定标签的情况下,应该假定使用便携式(符合POSIX的)解决方案,尽管最好另外使用“ posix”或“ sh”。


5
GNU可以使句柄文件名带有空格吗?
我有一个包含几个文件的目录,其中一些文件名称中包含空格: Test workspace/ Another directory/ file1.ext file2.ext demo 2012-03-23.odp 我$(wildcard)在此目录上使用GNU的命令,然后使用遍历结果$(foreach),并打印出所有内容。这是代码: FOO := $(wildcard *) $(info FOO = $(FOO)) $(foreach PLACE,$(FOO),$(info PLACE = $(PLACE))) 这是我希望看到的结果: Test workspace Another directory file1.ext file2.ext demo 2012-03-23.odp 这是我实际上会得到的: Test workspace Another directory file1.ext file2.ext demo 2012-03-23.odp 后者显然对我没有用。该文档为$(wildcard)它返回一个“名字的空格分隔的名单”,但完全平整出国家不承认的巨大问题,这引起了。也不对文件进行$(foreach)。 有可能解决此问题吗?如果是这样,怎么办?重命名每个文件和目录以删除空格不是一个选择。
78 shell  makefile  gnu 



14
我怎么知道我的docker mysql容器何时启动并且mysql准备好进行查询?
我正在部署几个不同的Docker容器,第一个是mysql。我想在数据库启动后立即运行脚本,然后继续构建其他容器。该脚本已失败,因为它试图在设置mysql(从此正式mysql容器)的入口点脚本仍在运行时运行。 sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=MY_ROOT_PASS -p 3306:3306 -d mysql [..] wait for mysql to be ready [..] mysql -h 127.0.0.1 -P 3306 -u root --password=MY_ROOT_PASS < MY_SQL_SCRIPT.sql 有没有一种方法可以等待docker容器内的进入MySQL设置脚本完成的信号?重击睡眠似乎是次佳的解决方案。 编辑:像这样的bash脚本。不是最优雅,最蛮力的,但就像一种魅力。也许有人会觉得有用。 OUTPUT="Can't connect" while [[ $OUTPUT == *"Can't connect"* ]] do OUTPUT=$(mysql -h $APP_IP -P :$APP_PORT -u yyy --password=xxx …
78 mysql  bash  shell  docker 

2
如何在文件中使用grep区分大小写的字符串?
我有一个file1以Success...OR 结尾 的文件success... 我想以一种不区分大小写的方式来grep表示这个词success。 我已经写了以下命令,但是区分大小写 cat file1 | grep "success\.\.\." 我该如何,它改变它,以便returns 0与两个Success...或 success...
78 bash  shell  awk  sed  grep 

4
Bash Shell脚本-检查标志并获取其值
我正在尝试制作一个shell脚本,旨在像这样运行: script.sh -t application 首先,在我的脚本中,我想检查脚本是否已使用-t标志运行。例如,如果运行时没有这样的标志,我希望它出错: script.sh 其次,假设存在-t标志,我想获取该值并将其存储在我可以在脚本中使用的变量中,例如: FLAG="application" 到目前为止,我在这方面取得的唯一进步是$ @可以获取所有命令行参数,但是我不知道这与标志之间的关系,或者甚至是不可能的。
78 linux  bash  shell  debian 

4
几分钟前如何查找已访问/创建的文件
我总是忘记我在一分钟前编辑的文件,所以我输入了find . -cmin 1或其他值,但它恰好在1几分钟内起作用。我不得不尝试find . -ctime 2 /*or 3,4...*/。 然后,我发现另一种更好的方法: touch -t 12251134 empty /*similar format which 5 or 10 minutes ago */ find . -newer empty 我可以date -d'-5minutes' +%m%d%H%M为我计算时间。我想知道是否有一种简单的方法来查找在1、2或3 ...分钟前访问过的文件。
78 linux  bash  shell  unix  find 


16
将stdout和stderr捕获到不同的变量中
是否可以在不使用临时文件的情况下以不同的变量存储或捕获stdout和stderr ?现在,我这样做是为了out在err运行时输入stdout和stderr some_command,但是我想避免使用temp文件。 error_file=$(mktemp) out=$(some_command 2>$error_file) err=$(< $error_file) rm $error_file

6
Shell脚本的单元测试
多年来,我从事的几乎所有产品都涉及一定程度的Shell脚本(或Windows上的批处理文件,PowerShell等)。即使我们用Java或C ++编写了大量代码,但似乎总是存在一些集成或安装任务,而这些任务最好使用Shell脚本来完成。 这样,shell脚本便成为随附代码的一部分,因此需要像已编译的代码一样进行测试。有没有人对其中的一些shell脚本单元测试框架有经验,例如shunit2?目前,我主要对Linux shell脚本感兴趣。我想知道测试工具能够很好地复制其他xUnit框架的功能和易用性,以及与持续构建系统(如CruiseControl或Hudson)集成的难易程度。

7
如何使用Bash将一个目录合并到另一个目录?
我正在寻找将文件从一个目录合并到另一个目录的shell脚本。 样品: html/ a/ b.html index.html html_new/ a/ b2.html b.html 用法: ./mergedirs.sh html html_new 结果: html/ a/ b.html b2.html index.html html/a/b.html被替换为html_new/a/b.html html/a/b2.html被复制自html_new/a/b2.html html/index.html保持不变

9
如何判断我是否在屏幕上?
在Linux中使用屏幕时,如何确定我是否在屏幕中?如果可以exit,我可以退出屏幕,但是如果没有,那么我将关闭终端。 在执行操作时screen -r,我可以查看是否还连接了其他屏幕,但是如何知道我的当前终端是否是这些已连接屏幕之一?

11
Unix-文件中的列数
给定一个包含这样数据的文件(即stores.dat文件) sid|storeNo|latitude|longitude 2|1|-28.03720000|153.42921670 9|2|-33.85090000|151.03274200 输出列名数量的命令是什么? 例如,在上面的示例中,该值为4。(第一行中的竖线字符数+ 1) 我在想类似的东西: awk '{ FS = "|" } ; { print NF}' stores.dat 但它返回所有行,而不仅仅是第一行,对于第一行,它返回1而不是4
77 linux  bash  shell  unix  scripting 


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.