草庐IT

linux - bash环境变量$-中的字符是什么意思?

我一直在查看各种Linux发行版附带的一些.bashrc和.profile脚本,发现有时它们会检查$-。这是Ubuntu中的一个case$-in*i*);;*)return;;esac在这种情况下,它会检查是否存在“i”标志以查看当前shell是否是交互式shell。我当前的session给了我这个:#echo$-himBH其他标志/选项是什么意思?某处有完整的list吗? 最佳答案 来自manbash:-Expandstothecurrentoptionflagsasspecifieduponinvocation,bytheset

linux - bash环境变量$-中的字符是什么意思?

我一直在查看各种Linux发行版附带的一些.bashrc和.profile脚本,发现有时它们会检查$-。这是Ubuntu中的一个case$-in*i*);;*)return;;esac在这种情况下,它会检查是否存在“i”标志以查看当前shell是否是交互式shell。我当前的session给了我这个:#echo$-himBH其他标志/选项是什么意思?某处有完整的list吗? 最佳答案 来自manbash:-Expandstothecurrentoptionflagsasspecifieduponinvocation,bytheset

linux - 多线程 Bash If 语句

在bash脚本中多线程独立if语句的正确方法是什么?最好将&放在if中包含的代码之后还是表达式之后?对于表达式之后的&,如果if包含大块代码,则根据需要继续线程化是有意义的。但是一行代码也应该以&结尾吗?在表达式之后:if[expression]&then#taskfi任务完成后:if[expression]then#task&fi想象一下3个if语句,它们都执行彼此独立的任务,执行如何与&的不同位置一起工作?据我了解,如果放在表达式之后,所有3个表达式(基本上)同时开始,3个任务也是如此。#Thread1#Thread2#Thread3if[expr1]&if[expr2]&if[e

linux - 多线程 Bash If 语句

在bash脚本中多线程独立if语句的正确方法是什么?最好将&放在if中包含的代码之后还是表达式之后?对于表达式之后的&,如果if包含大块代码,则根据需要继续线程化是有意义的。但是一行代码也应该以&结尾吗?在表达式之后:if[expression]&then#taskfi任务完成后:if[expression]then#task&fi想象一下3个if语句,它们都执行彼此独立的任务,执行如何与&的不同位置一起工作?据我了解,如果放在表达式之后,所有3个表达式(基本上)同时开始,3个任务也是如此。#Thread1#Thread2#Thread3if[expr1]&if[expr2]&if[e

linux - 检查 "make"的输出,如果失败则退出 bash 脚本

然而,我不仅对bash感兴趣;我已经编写了一个bash脚本来执行我的cmake、make和c++可执行文件。#!/bin/bashcmake.make./pcl_visualizer_demo这很好用,除非我的代码无法编译它执行旧的可执行文件并给我留下一团糟。我希望将make的输出放入一个if语句中,该语句仅在make成功时运行可执行文件。我在stackoverflow上的其他帖子中尝试了很多bash东西。有些问题似乎是make的输出不是字符串,例如:OUTPUT=makeecho$OUTPUT给出:[100%]Builttargetpcl_visualizer_demo但无法使用:i

linux - 检查 "make"的输出,如果失败则退出 bash 脚本

然而,我不仅对bash感兴趣;我已经编写了一个bash脚本来执行我的cmake、make和c++可执行文件。#!/bin/bashcmake.make./pcl_visualizer_demo这很好用,除非我的代码无法编译它执行旧的可执行文件并给我留下一团糟。我希望将make的输出放入一个if语句中,该语句仅在make成功时运行可执行文件。我在stackoverflow上的其他帖子中尝试了很多bash东西。有些问题似乎是make的输出不是字符串,例如:OUTPUT=makeecho$OUTPUT给出:[100%]Builttargetpcl_visualizer_demo但无法使用:i

linux - 从 bash 启动 apachectl

我正在写一个bash文件。我需要从我的bash文件启动apachectl。所以我写道:apachectlstart当我用root运行它时,发生错误:apachectl:commandnotfound我搜索了一下,发现我应该是superusersu-而不是su现在,我想知道:为什么会出现这个错误?如何使用su运行它? 最佳答案 在shell脚本中,你应该使用完整路径来执行命令,除非$PATH中已经包含可执行文件的目录。例如,查找apachectl二进制文件所在的位置:whichapachectl或whereisapachectl你会得

linux - 从 bash 启动 apachectl

我正在写一个bash文件。我需要从我的bash文件启动apachectl。所以我写道:apachectlstart当我用root运行它时,发生错误:apachectl:commandnotfound我搜索了一下,发现我应该是superusersu-而不是su现在,我想知道:为什么会出现这个错误?如何使用su运行它? 最佳答案 在shell脚本中,你应该使用完整路径来执行命令,除非$PATH中已经包含可执行文件的目录。例如,查找apachectl二进制文件所在的位置:whichapachectl或whereisapachectl你会得

linux - Bash:从文件中读取标准输入并将标准输出写入文件

我正在尝试运行一个应用程序(比方说top),以便它从一个文件中读取stdin并从stdout写入另一个文件。目前我有mkfifostdin.pipe(tail-fstdin.pipe)|top它按预期工作,因为我可以echo向该文件发送一些内容,top将接收它。但我无法重定向top的输出。我怎样才能做到这一点?编辑:好的,让我们从头开始。我正在测试这个:cattest.shechoSaysomethingreadsomethingechoyousaid$something 最佳答案 让我们忘记top,它似乎是一个转移注意力的东西。要

linux - Bash:从文件中读取标准输入并将标准输出写入文件

我正在尝试运行一个应用程序(比方说top),以便它从一个文件中读取stdin并从stdout写入另一个文件。目前我有mkfifostdin.pipe(tail-fstdin.pipe)|top它按预期工作,因为我可以echo向该文件发送一些内容,top将接收它。但我无法重定向top的输出。我怎样才能做到这一点?编辑:好的,让我们从头开始。我正在测试这个:cattest.shechoSaysomethingreadsomethingechoyousaid$something 最佳答案 让我们忘记top,它似乎是一个转移注意力的东西。要