Tag: bash

转换行结束符

我一直在使用d2u转换行结束符。 安装Puppy Linux后,我注意到它不是与d2u ,但dos2unix 。 然后我发现默认情况下Ubuntu缺失。 换行结束的另一种方法是什么?

grep:组捕获

我有以下string: {"_id":"scheme_version","_rev":"4-cad1842a7646b4497066e09c3788e724","scheme_version":1234} 我需要得到“scheme version”的值,在这个例子中是1234。 我努力了 grep -Eo "\"scheme_version\":(\w*)" 然而它返回 "scheme_version":1234 我怎样才能做到这一点? 我知道我可以添加sed调用,但我更喜欢用单个grep来完成。

bash:将stdout和stderrredirect(并追加)到文件和terminal,并获得正确的退出状态

为了将stdout和stderrredirect(并追加)到一个文件,同时也在terminal上显示它,我这样做: command 2>&1 | tee -a file.txt 但是,有没有另外一种方法来获得退出状态的准确值? 也就是说,如果我testing$? ,我想看看command的退出状态,而不是退出状态。 我知道我可以使用${PIPESTATUS[0]}而不是$? ,但我正在寻找另一个不涉及检查PIPESTATUS解决scheme。

你在OSX上保留自己的脚本?

当我为我的OS X编写我的bash脚本来做一般事情时,我想知道哪里是保持它们的好地方。 有没有一个目录,我可以把他们全部在哪里会被自动拾取? 或者我应该创build我自己的目录,然后从.profile或其他引用该目录?

我怎样才能确定bash中的符号链接?

如何在bash取任何给定的path并将其转换为规范forms,解引用path中可能包含的任何符号链接? 例如: ~$ mkdir /tmp/symtest ~$ cd /tmp/symtest/ /tmp/symtest$ mkdir -p foo/bar cat/dog /tmp/symtest$ cd foo/bar/ /tmp/symtest/foo/bar$ ln -s ../../cat cat /tmp/symtest/foo/bat$ cd ../../ /tmp/symtest$ tree . |– cat | `– dog `– foo `– bar `– cat -> ../../cat 6 directories, 0 files 我如何获得/tmp/symtest/foo/bar/cat (即: /tmp/symtest/cat )的完整规范path?

使用-exec {}查找,有没有一种方法来计算总数?

我正在使用一个类似这样的命令: find . -name "*.php" -exec chmod 755 {} \; 虽然,我不使用chmod,但我正在使用不同的命令,我不会在这里列出。 这个命令工作正常。 但是,有数以千计的文件和目录需要操作,这个操作需要一些时间。 我想知道是否有一种方式来显示操作完成时的某种总数? 也许是修改文件的计数? 我能想到的唯一的事情就是做一些事情: find . -name "*.php" -exec chmod 755; echo "+"; {} \; 这会工作吗? 至less我们可以看到发生了一些事情…任何人都有更好的build议?

bash / zsh脚本中“case”语句的奇怪语法是什么原因?

从程序员的angular度来看,shell脚本只是另一种编程语言,需要学习和遵守语言规则。 然而,我不得不承认,这个语法是我所见过的最常用的语言。 shell是否使用了从它下降的旧语言的语法? 语法中是否有特殊的含义/含义? 举个例子,我从SO上的另一篇文章中看到了一小段代码 case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) check_status ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac 看这个,首先我可以看到这个case以esac结尾,这是它的反转forms(就像以fi结尾)。 其次,我明白,每个案件后面都是a ) 。 够公平的,但为什么我需要两个; 在每一个陈述结束? 我也会说,没有伴随(是丑陋的。 我正在寻找关于该语言的历史方面的更多信息,但是由于技术原因,我也是开放的。

“git add”使用通配符不能正常工作,我希望 – 我必须cd到特定的目录?

当我尝试做一个基本的git add * .erb (或任何简单的通配符expression式)git不认识它(他们)。 作为一个侧面说明,我从来没有这样做过,所以我敢肯定,这是一个新手的错误,但我没有find其他SO职位或我校的校友名单服务没有帮助,所以我觉得这个职位可能是合适的。 对于(不同的)例子, git status给了我: # modified: config/routes.rb # modified: spec/models/question_spec.rb 我只想登台路线文件,所以我尝试了git add * s.rb而不是骰子。 我在应用程序的根…我是否需要在包含文件的目录我试图应用通配符expression式? 这将是痛苦的,但是…实际上…它只是工作。 希望这不必是一个单独的post,但有没有更容易的方式来使用通配符,你不必cd到特定的目录?

从txt文件运行bash命令

我在txt文件中有一些命令,我​​需要逐行执行它们。 我怎么能这样做?

在Bash中,如何find编号最小的未使用的文件描述符?

在Bash脚本中,是否可以在“最低编号的文件描述符尚未使用”上打开文件? 我已经四处寻找如何做到这一点,但似乎Bash总是要求你指定数字,例如像这样: exec 3< /path/to/a/file # Open file for reading on file descriptor 3. 相反,我想能够做到这样的事情 my_file_descriptor=$(open_r /path/to/a/file) 这将打开“文件”来读取尚未使用的编号最小的文件描述符,并将该编号分配给variables“my_file_descriptor”。