Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。


5
如果满足条件,Bash中将出现“一元运算符预期”错误
我一直在试图找出问题出在哪里,但是却无法解决。 这部分似乎出现了错误。 elif [ $operation = "man" ]; then if [ $aug1 = "add" ]; then # <- Line 75 echo "Man Page for: add" echo "" echo "Syntax: add [number 1] [number 2]" echo "" echo "Description:" echo "Add two different numbers together." echo "" echo "Info:" echo "Added …
225 bash  shell 



18
您如何在Bash中回显4位Unicode字符?
我想将Unicode骷髅和交叉骨添加到我的shell提示符中(特别是“ SKULL AND CROSSBONES”(U + 2620)),但我无法弄清楚使回声吐出的魔咒,或其他任何东西, 4位Unicode字符。两位数字很容易。例如,echo -e“ \ x55”,。 除了以下答案外,还应注意,很明显,您的终端需要支持Unicode才能使输出符合您的期望。gnome-terminal在这方面做得很好,但是默认情况下不一定打开它。 在macOS的终端应用程序上,转到“首选项”->“编码”,然后选择Unicode(UTF-8)。

19
测试glob是否在bash中有任何匹配项
如果要检查是否存在单个文件,可以使用test -e filename或进行测试[ -e filename ]。 假设我有一个glob,我想知道是否存在名称与该glob匹配的任何文件。这个glob可以匹配0个文件(在这种情况下,我什么都不要做),也可以匹配1个或多个文件(在这种情况下,我需要做些什么)。我如何测试一个glob是否有匹配项?(我不在乎有多少个匹配项,最好是我可以只用一条if语句就可以做到这一点,并且没有循环(这是因为我发现它最易读)。 (test -e glob*如果全局匹配多个文件,则失败。)
223 bash  glob 



8
命令失败怎么退出?
我是shell脚本方面的菜鸟。如果命令失败,我想打印一条消息并退出脚本。我试过了: my_command && (echo 'my_command failed; exit) 但它不起作用。它会继续执行脚本中此行之后的指令。我正在使用Ubuntu和bash。
222 linux  bash  exit  exitstatus 

30
如何运行Conda?
我安装了Anaconda并可以运行Python,因此我假设我已正确安装了它。按照此介绍性文档,我尝试安装Python v3.3,因此将以下行复制并粘贴到控制台中: conda create -n py33 python=3.3 anaconda 但是,这给了我一个错误: -bash:conda:找不到命令 运行Conda我需要做什么? 我正在Linux系统上工作。
221 python  bash  anaconda  conda 

7
如何列出外壳程序中定义的功能?
我可以键入别名以显示所有别名的列表。 但是对于功能,我所能做的就是grep my .bash_profile。 这样只会得到该文件中的文件,而不是在子文件中定义的文件或动态获得的文件。 有没有更方便的方法来找出当前定义的功能?
221 bash  shell  function  unix 

13
如何遍历find返回的文件名?
x=$(find . -name "*.txt") echo $x 如果我在Bash shell中运行以上代码,则得到的是一个包含多个文件名的字符串,这些文件名用空格分隔,而不是列表。 当然,我可以用空格进一步分隔它们以获得列表,但是我敢肯定有更好的方法可以做到这一点。 那么遍历find命令结果的最佳方法是什么?
221 bash  find 

8
在Bash中减去两个变量
我有下面的脚本来减去两个目录之间文件的数量,但是COUNT=表达式不起作用。正确的语法是什么? #!/usr/bin/env bash FIRSTV=`ls -1 | wc -l` cd .. SECONDV=`ls -1 | wc -l` COUNT=expr $FIRSTV-$SECONDV ## -> gives 'command not found' error echo $COUNT
220 bash  shell  unix 

19
如何在Shell脚本中解析符号链接
给定绝对路径或相对路径(在类Unix系统中),我想在解决所有中间符号链接后确定目标的完整路径。同时解决〜username表示法的奖励点。 如果目标是目录,则可以将chdir()进入目录,然后调用getcwd(),但我真的很想从shell脚本中执行此操作,而不是编写C帮助程序。不幸的是,shell倾向于尝试向用户隐藏符号链接的存在(在OS X上是bash): $ ls -ld foo bar drwxr-xr-x 2 greg greg 68 Aug 11 22:36 bar lrwxr-xr-x 1 greg greg 3 Aug 11 22:36 foo -> bar $ cd foo $ pwd /Users/greg/tmp/foo $ 我想要的是一个resolve()函数,以便在上述示例中的tmp目录中执行时,resolve(“ foo”)==“ / Users / greg / tmp / bar”。
220 bash  shell  scripting  symlink 


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.