相关疑难解决方法(0)

如何从Bash脚本检查程序是否存在?

如何验证程序是否存在,以返回错误并退出或继续脚本的方式?

看起来应该很容易,但它一直在困扰我.

bash

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

基于进程退出代码退出Shell脚本

我有一个执行许多命令的shell脚本.如果任何命令以非零退出代码退出,如何使shell脚本退出?

bash shell

372
推荐指数
8
解决办法
41万
查看次数

停止第一个错误

可能重复:
出错时自动退出bash shell脚本

如何在第一次命令失败时停止bash,而不是在我的代码中放入这样的东西?

some_prog || exit 1
some_other_prog || exit 1
Run Code Online (Sandbox Code Playgroud)

bash

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

在bash中创建临时文件

是否有客观上更好的方法在bash脚本中创建临时文件?

我通常只是将它们命名为我想到的任何内容,例如tempfile-123,因为当脚本结束时它将被删除.除了覆盖当前文件夹中可能的tempfile-123之外,还有什么不利吗?或者以更仔细的方式创建临时文件有什么好处?

unix linux bash

140
推荐指数
5
解决办法
10万
查看次数

出错时退出脚本

我正在构建一个具有如下if函数的Shell脚本:

if jarsigner -verbose -keystore $keyst -keystore $pass $jar_file $kalias
then
    echo $jar_file signed sucessfully
else
    echo ERROR: Failed to sign $jar_file. Please recheck the variables
fi

...
Run Code Online (Sandbox Code Playgroud)

我希望在显示错误消息后完成脚本的执行.我怎么能这样做?

bash shell exit

126
推荐指数
4
解决办法
16万
查看次数

读取行循环后的Shell脚本在第一行后停止

我有以下shell脚本.目的是循环到目标文件的每一行(其路径是脚本的输入参数)并对每一行进行操作.现在,它似乎只适用于目标文件中的第一行,并在该行被处理后停止.我的剧本有什么问题吗?

#!/bin/bash
# SCRIPT: do.sh
# PURPOSE: loop thru the targets 

FILENAME=$1
count=0

echo "proceed with $FILENAME"

while read LINE; do
   let count++
   echo "$count $LINE"
   sh ./do_work.sh $LINE
done < $FILENAME

echo "\ntotal $count targets"
Run Code Online (Sandbox Code Playgroud)

do_work.sh,我运行了几个ssh命令.

ssh bash shell while-loop

86
推荐指数
4
解决办法
5万
查看次数

有没有办法编写一个bash函数来中止整个执行,无论它是如何被调用的?

我在我的bash函数中使用"exit 1"语句来终止整个脚本,它工作正常:

function func()
{
   echo "Goodbye"
   exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
Run Code Online (Sandbox Code Playgroud)

但后来我意识到,当调用它时它不起作用:

res=$(func)
Run Code Online (Sandbox Code Playgroud)

据我所知,我创建了一个子shell,"退出1"中止了子shell而不是主要的....

有没有办法编写一个中止整个执行的函数,无论它如何被调用?我只需要获得真正的返回值(由函数回应).

bash function exit subshell

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

10
推荐指数
1
解决办法
4015
查看次数

为什么测试"$?" 一个反模式,看一个命令是否成功?

在这里看到测试是否$?是零(成功)或其他东西(失败)是反模式,但我无法在其他任何地方找到它.

坚持维基百科反模式的定义:"反模式(或反模式)是对反复出现的问题的常见反应,这种反复出现的问题通常是无效的,并且可能会产生极大的反作用." 为什么这会是反模式?

bash shell sh

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

什么设置-e和set -a在bash中做什么.我可以使用set命令的其他选项

我想知道下面命令在bash中做了什么.

  • 设置-e
  • 设置-a

我可以使用set的其他选项是什么,它们是什么意思.

manpage

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

标签 统计

bash ×9

shell ×5

exit ×2

linux ×2

function ×1

manpage ×1

sh ×1

ssh ×1

subshell ×1

unix ×1

while-loop ×1