小编J. *_*ker的帖子

Shell Script mktemp,创建临时命名管道的最佳方法是什么?

我知道最好用 来创建临时文件mktemp,但是命名管道呢?

我更喜欢尽可能符合 POSIX 标准,但只有 Linux 是可以接受的。正如我在dash.

linux shell security pipe

36
推荐指数
2
解决办法
2万
查看次数

几个与算术相关的命令,Dash、POSIX shell、sh、Increment

在 POSIX Shell 中对变量进行 pre/post 递增时,这两个示例之间有什么区别。它们看起来会产生相同的结果,但它们的使用方式会不同吗?你什么时候更喜欢一个?

X=$((X+1))

: $((X=X+1))
Run Code Online (Sandbox Code Playgroud)

shell dash shell-script posix

20
推荐指数
1
解决办法
1万
查看次数

在脚本中,检查标准输入是否来自文件或管道

我知道以前对此的报道很少,但这些答案要么缺乏解释,要么不适用。

基本上在某些时候,我的脚本需要检查是否指定了文件,如果是,则稍后将用作输入。

[ -f "$1" ] && TINPUT="$1"
Run Code Online (Sandbox Code Playgroud)

足够简单......现在如果找不到文件或未指定文件,我TINPUT="-"会告诉后面的命令读取标准输入。

这是我的问题......如果脚本在没有管道或没有指定文件的情况下运行,我如何让脚本因错误而死?

我正在使用 dash,Debian POSIX 兼容 shell,所以我不能使用 Bashisms。我也更喜欢使用列表,ifs但大多数ifs都可以写在列表中。

shell dash shell-script stdin

8
推荐指数
1
解决办法
2687
查看次数

Getopts 选项处理,是否可以添加非连字符 [FILE]?

我正在使用getopts所有需要高级选项解析的脚本,并且它与dash. 我熟悉标准的基本getopts用法,包括[-x][-x OPTION]

是否可以解析这样的选项?

 dash_script.sh FILE -x -z -o OPTION
 ## Or the inverse?
 dash_script.sh -x -z -o OPTION FILE
Run Code Online (Sandbox Code Playgroud)

shell options dash parameter getopts

6
推荐指数
1
解决办法
5785
查看次数

Shell 条件后的多个命令列表、&&、||。Shell 脚本,破折号

我试图在一个条件之后执行多个命令,例如......

[ $VAR ] || echo "Error msg" ; echo "exit"
Run Code Online (Sandbox Code Playgroud)

和逆

[ -z $VAR ] &&  echo "Error msg" ; echo "exit"
Run Code Online (Sandbox Code Playgroud)

我知道这不会按预期工作,实际上我以前知道如何执行但忘记了如何执行此操作。我完全了解许多替代方案,例如使用if's 或通过()和括起来{}。使用()将创建一个不会退出正在运行的脚本的子进程。使用{}会起作用,但我知道存在一个更具可读性的替代方案。

我用 做了这个:,它是完美的!!!我现在一辈子都记不起来了,而且我丢失了以前写过的剧本。

如果有人知道如何用:'s写这个,我真的很感激任何帮助!

shell control-flow

4
推荐指数
2
解决办法
1747
查看次数

这个csh文件有什么问题?

我没有任何编写 .sh 文件的经验。我想从Volume Library运行这个应用程序的 pvm2raw 实用程序。

在 Ubuntu 10.10 中运行 build.sh 时出现以下错误。

在此处输入图片说明

build.sh 如下:

# make command
set mmfile=V3Makefile
set make="make -f $mmfile"

set rule=$1
if ($rule == "") set rule="all" // line 16

if ($rule == "deps") then
   if ($HOSTTYPE == "iris4d") $make MAKEDEPEND="CC -M" OPTS="-DHAVE_CONFIG_H -DVIEWER_HAVE_DCMTK" TARGET=IRIX depend
   if ($HOSTTYPE == "i386") $make MAKEDEPEND="c++ -M -I/usr/X11R6/include" OPTS="-DHAVE_CONFIG_H -DVIEWER_HAVE_DCMTK" TARGET=LINUX depend
Run Code Online (Sandbox Code Playgroud)

有什么问题吗?

编辑:我按照 jw013 的建议安装了 csh。现在我收到以下错误:

在此处输入图片说明

我该如何解决这个未定义的变量问题?

tcsh shell-script csh

2
推荐指数
1
解决办法
2266
查看次数

标签 统计

shell ×5

dash ×3

shell-script ×3

control-flow ×1

csh ×1

getopts ×1

linux ×1

options ×1

parameter ×1

pipe ×1

posix ×1

security ×1

stdin ×1

tcsh ×1