Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

1
使用glob在for循环中指定“ ./”有什么好处吗?
我的印象是./*.fastq,搜索以结尾的文件时可能更安全.fastq。例如,./将阻止捕获文件.fastq。显然这是错误的,如下例所示: TMP_DIR=$(mktemp --directory) mkdir -p ${TMP_DIR} (cd ${TMP_DIR} touch {a,b,c,}.fastq ls -a echo "" echo "# match all:" for f in *.fastq ; do echo "${f}" done echo "" echo "# with ./:" for f in ./*.fastq ; do echo "${f}" done ) rm -rf ${TMP_DIR} . .. a.fastq b.fastq …
10 bash  shell  wildcards 

2
如何使用包含'和'的命令创建别名
几篇文章之前,有人问如何以百分比显示内存。有人回复: free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }' 我想知道是否可以将此命令转换为〜/ .bashrc中的别名。但是别名的语法是: alias aliasname='command' 我怎样才能做到这一点?该命令包含'和"。我尝试了不同的方法,但是没有用。这有可能吗?我想念什么吗?
10 bash  quoting  alias 

5
捕获退出命令的退出代码
我在bash脚本中有这个: exit 3; exit_code="$?" if [[ "$exit_code" != "0" ]]; then echo -e "${r2g_magenta}Your r2g process is exiting with code $exit_code.${r2g_no_color}"; exit "$exit_code"; fi 看起来它将在退出命令后立即退出,这很有意义。我想知道是否有一些简单的命令可以提供退出代码而无需立即退出? 我当时在猜测: exec exit 3 但它会显示错误消息:exec: exit: not found。我能做什么?:)

1
使用Tab键激活时多行编写结构化命令
我想在多行中编写结构化命令 $ for i in *; → do → file $i; → done bmdt.md: ASCII text breakfast.md: ASCII text brmdh.md: ASCII text test.sh: Bourne-Again shell script text executable, ASCII text 但发现该标签不起作用, 如何在bash控制台中激活Tab键?
10 bash 


2
在运行某些命令期间从一个进程读取日志
我有一些服务可以在文件中生成日志logs.log。 我还有一些与此服务交互的命令。可以说是一些foo.sh。 我需要的是logs.log准确地在foo.sh运行期间剪切并保存日志。换句话说,当服务与我的服务交互时,我需要该服务的那部分日志foo.sh(因此我不在乎foo.sh的日志)。 我希望此命令能够解决问题,但是在foo.sh完成后它将继续读取文件: > foo.sh | tail -f logs.log > foo_part.log 有什么好方法可以执行此技巧吗?
10 bash  tail 

3
_何时是bash shell的环境变量?
Bash手册说(帮助页面,我的重点): 当Bash调用外部命令时,该变量$_将设置为命令的完整路径名,并在其环境中传递给该命令。 和(特殊参数): _ ($_,下划线。)在shell启动时,设置为用于调用在环境或参数列表中传递的正在执行的shell或shell脚本的绝对路径名。随后,在扩展后,扩展到上一个命令的最后一个参数。还设置为用于调用每个执行的命令的完整路径名,并放置在导出到该命令的环境中。检查邮件时,此参数保存邮件文件的名称。 在bash shell中,我运行: $ bash $ export | grep '_=' 根据手册,_应该是新bash shell的环境变量。export应该输出新bash shell的所有环境变量,但不输出 _。所以我想知道_新bash shell的环境变量是否是? 实际上,在任何bash shell中,都会发生相同的情况 $ export | grep '_=' 什么都不输出 所以我想知道_bash shell的环境变量是否曾经存在吗? 为了比较: $ dash $ export | grep '_=' export _='/bin/dash' 我的帖子的灵感来自Mike的评论和Stephane的回复。

1
如何在Bash中取消其余命令列表?
在Bash中,有时我会键入命令列表并点击Enter,直到后来才意识到列表末尾的某些命令有错误。我知道如果我按Ctrl+ C,它将终止当前正在运行的命令并取消其余列表。有什么方法可以取消列表的其余部分而不终止当前正在运行的命令? 例如,假设我输入了类似 foo; bar 要么 foo && bar foo长时间运行的命令在哪里很重要,不要中断它,并且bar做一些不可逆的和不需要的操作(例如shutdown -h now或rm -rf /)。在foo仍然运行时,是否有一种通用的方法告诉外壳foo完成但不bar随后运行?(是的,我可以更改其权限bar以使其不可执行,但是,如果同时要使用bar类似的东西,这并不是特别方便rm,如果我不拥有它bar或者bar是内置的,也无法使用。)

2
该研究指南在确定文件类型的命令方面是否错误?
学习指南LPIC-1培训和准备指南(Ghori Asghar,ISBN 978-1-7750621-0-3)包含以下问题... 以下哪个命令可用于确定文件类型? (一种) file (B) type (C) filetype (D) what ……并声称答案是:“(B)type”。 但是“(A)file”不是正确的答案吗? 我开始怀疑整本书。
10 linux  bash 

4
查找命令,枚举输出并允许选择?
当我使用时find,它经常会发现多个结果,例如 find -name pom.xml ./projectA/pom.xml ./projectB/pom.xml ./projectC/pom.xml 我通常只想选择一个特定的结果(例如edit ./projectB/pom.xml)。有没有办法枚举find输出并选择要传递到另一个应用程序的文件?喜欢: find <print line nums?> -name pom.xml 1 ./projectA/pom.xml 2 ./projectB/pom.xml 3 ./projectC/pom.xml !! | <get 2nd entry> | xargs myEditor ? [编辑]通过提到的一些解决方案,我遇到了一些重大错误。因此,我想说明重现步骤: git clone http://git.eclipse.org/gitroot/platform/eclipse.platform.swt.git cd eclipse.platform.swt.git <now try looking for 'pom.xml' and 'feature.xml' files> [编辑]解决方案1 到目前为止,如果我将'nl'(足够的输出),头和尾结合起来使用函数$(!!),头和尾似乎可以正常工作。 即: find -name pom.xml …
10 bash  files  find 

5
方括号内的大小写敏感
通常,bash globe区分大小写: $ echo c* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo C* CarePackage.md ChocRippleCake.md Clips 使用方括号似乎并没有改变: $ echo [c]* casefix.pike cdless chalices.py charconv.py chocolate.pike circum.py clip.pike cpustats.pike crop.pike cwk2txt.py $ echo [C]* CarePackage.md ChocRippleCake.md Clips 如果使用连字符,它仍然不会更改: $ echo [c-c]* casefix.pike cdless chalices.py charconv.py chocolate.pike …
10 bash  shell  wildcards  locale 

1
“ $-”中的“ s”是什么?
我通常很了解的内容$-。在最近的CentOS上,我得到: [grochmal@orion ~]$ echo $- himBH hmBH是的所有选项set,这i意味着我的外壳是交互式的。 但是,在Arch Linux上,我得到了: [grochmal@haps ~]$ echo $- himBHs 我找不到任何有用的东西,man bash并set -s给我一个错误。那s代表什么呢?

4
分配和检查bash函数元数据
我经常生成并注册许多bash函数,这些函数可以自动执行我在开发项目中通常执行的许多任务。那一代人取决于我正在从事的项目的元数据。 我想用生成的项目信息来注释函数,方法是: func1() { # This function was generated for project: PROJECT1 echo "do my automation" } 理想情况下,检查定义时我将能够看到注释: $ type func1 func1 is a function func1 () { # This function was generated for project: PROJECT1 echo "do my automation" } 但是在某种程度上,bash似乎在加载函数时(而不是在执行函数时)忽略了注释。因此,注释丢失了,我得到以下结果: func1 is a function func1 () { echo …
10 bash  function 


2
如何将参数传递给输入bash的脚本
现在我有一个这样的班轮: curl -fsSL http://git.io/vvZMn | bash 它正在下载脚本并将其作为stdin文件传递到bash。我想使用其他参数运行此脚本print。 也许是这样的吗? curl -fsSL http://git.io/vvZMn | bash -- print 但这是行不通的。
10 bash  pipe  curl  input 

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.