相关疑难解决方法(0)

将参数传递给Bash函数

我试图搜索如何在Bash函数中传递参数,但是出现的是如何从命令行传递参数.

我想在我的脚本中传递参数.我试过了:

myBackupFunction("..", "...", "xx")

function myBackupFunction($directory, $options, $rootPassword) {
     ...
}
Run Code Online (Sandbox Code Playgroud)

但是语法不正确,如何将参数传递给我的函数?

bash

900
推荐指数
7
解决办法
98万
查看次数

在bash shell脚本中使用getopts来获取长和短的命令行选项

我希望使用我的shell脚本调用多种形式的命令行选项.

我知道getopts可以使用,但就像在Perl中一样,我无法对shell做同样的事情.

关于如何做到这一点的任何想法,以便我可以使用如下选项:

./shell.sh --copyfile abc.pl /tmp/
./shell.sh -c abc.pl /tmp/
Run Code Online (Sandbox Code Playgroud)

在上面,两个命令对我的shell意味着相同的东西,但使用getopts,我还没有能够实现这些?

bash getopt getopts command-line-arguments

390
推荐指数
17
解决办法
39万
查看次数

如何在Bash中使用标志获取参数

我知道我可以轻松地在bash中获取这样的定位参数:

$0 要么 $1

我希望能够使用这样的标志选项来指定使用每个参数的内容:

mysql -u user -h host
Run Code Online (Sandbox Code Playgroud)

通过国旗而不是按位置获得-u param价值和-h param价值的最佳方法是什么?

bash shell

260
推荐指数
8
解决办法
22万
查看次数

将命令行参数转换为Bash中的数组

如何将命令行参数转换为bash脚本数组?

我想接受这个:

./something.sh arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

并将其转换为

myArray=( arg1 arg2 arg3 )
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用myArray在脚本中进一步使用了.

这个以前的SO帖子很接近,但没有讨论如何创建数组:如何在Bash中解析命令行参数?

我需要将参数转换为常规的bash脚本数组; 我意识到我可以使用其他语言(例如Python),但需要在bash中执行此操作.我想我正在寻找一个"附加"功能或类似的东西?

更新:我还想问如何检查零参数并分配一个默认数组值,并且由于下面的答案,能够使这个工作:

if [ "$#" -eq 0 ]; then
  myArray=( defaultarg1 defaultarg2 )
else
  myArray=( "$@" )
fi
Run Code Online (Sandbox Code Playgroud)

arrays bash shell

139
推荐指数
5
解决办法
14万
查看次数

Bash中的命令行参数

我想写一个带有不同参数的bash脚本.它应该像普通的linux控制台程序一样使用:

my_bash_script -p 2 -l 5 -t 20
Run Code Online (Sandbox Code Playgroud)

因此,值2应保存在名为pages的变量中,参数l应保存在名为length的变量中,值20应保存在可变时间内.

做这个的最好方式是什么?

bash command-line-arguments

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

Bash Shell脚本 - 检查标志并获取其值

我正在尝试创建一个shell脚本,其设计如下:

script.sh -t application
Run Code Online (Sandbox Code Playgroud)

首先,在我的脚本中,我想检查脚本是否已使用-t标志运行.例如,如果它没有像这样的标志运行我想让它出错:

script.sh
Run Code Online (Sandbox Code Playgroud)

其次,假设有一个-t标志,我想获取该值并将其存储在我可以在我的脚本中使用的变量中,例如:

FLAG="application"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够在任何一个方面取得的唯一进展是$ @抓取所有命令行参数,但我不知道这与标志有什么关系,或者这是否可能.

linux bash shell debian

66
推荐指数
3
解决办法
11万
查看次数

如何使用Linux中的终端命令将文件参数传递给我的bash脚本?

所以我的问题是如何使用Linux中的终端命令将文件参数传递给我的bash脚本?目前我正在尝试在bash中创建一个程序,该程序可以从终端获取文件参数并将其用作程序中的变量.例如我myprogram --file=/path/to/file在终端中运行 .

我的计划

#!/bin/bash    
File=(the path from the argument)  
externalprogram $File (other parameters)
Run Code Online (Sandbox Code Playgroud)

如何通过我的程序实现这一目标?

linux bash shell terminal command-line

42
推荐指数
3
解决办法
17万
查看次数

如何在内置Bash getopts的情况下使用长选项?

我试图-temp用Bash getopts 解析一个选项.我正在调用我的脚本:

./myscript -temp /foo/bar/someFile
Run Code Online (Sandbox Code Playgroud)

这是我用来解析选项的代码.

while getopts "temp:shots:o:" option; do
    case $option in
        temp) TMPDIR="$OPTARG" ;;
        shots) NUMSHOTS="$OPTARG" ;;
        o) OUTFILE="$OPTARG" ;;
        *) usage ;;
    esac
done
shift $(($OPTIND - 1))

[ $# -lt 1 ] && usage
Run Code Online (Sandbox Code Playgroud)

bash getopts command-line-arguments

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

bash命令行参数替换变量的默认值

我有一个包含多个输入文件的脚本,通常这些是默认存储在标准位置并由脚本调用.

但是,有时需要使用更改的输入来运行它.

在脚本中我现在说3个变量$ A $ B和$ C,现在我想用非默认的$ B运行它,明天我可能想用非默认的$ A和$ B来运行它.

我已经了解了如何解析命令行参数: 如何在Bash中解析命令行参数?

但我不知道如何在某些时候处理由命令行语句设置的问题?

我没有足够的代表回答我自己的问题,但我有一个解决方案:

/sf/answers/322732861/

#!/bin/bash
a=input1
b=input2
c=input3
while getopts  "a:b:c:" flag
do
    case $flag in
        a) a=$OPTARG;;
        b) b=$OPTARG;;
        c) c=$OPTARG;;
    esac
done
Run Code Online (Sandbox Code Playgroud)

道歉我显然没有像我想的那样彻底搜索......

variables bash default command-line-arguments

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

如何知道PDF是否仅包含图像还是已经过OCR扫描以进行搜索?

我有一堆来自扫描文档的PDF文件.这些文件包含图像和文本的混合.有些被扫描为没有OCR的图像,因此每个PDF页面都是一个大图像,即使整个页面完全是文本.其他人使用OCR进行扫描,并包含图像和可搜索的文本,其中包含文本.在许多情况下,甚至图像中的文字也可以搜索到.

我想使用OCR,使用Acrobat 8​​ Pro进行自动处理以识别所有扫描文档中的文本,但我不想重新OCR过去已经通过OCR过程的文件.有没有人知道是否有办法告诉哪些只包含图像,哪些已包含可搜索的文本?

我打算在C#或VB.NET中这样做,但我不认为能够分辨两种文件是依赖于语言的.

pdf ocr search acrobat

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