Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash如何检查参数是否为sed模式?_Linux_Bash_Design Patterns_Sed - Fatal编程技术网

Linux Bash如何检查参数是否为sed模式?

Linux Bash如何检查参数是否为sed模式?,linux,bash,design-patterns,sed,Linux,Bash,Design Patterns,Sed,我正在编写一个bash脚本,它应该会接收许多参数。这些论点可以很简单,比如: Myscript [-r] [-l|-u] <dir/file names...> 更清楚地说,下面是一个我在尝试这样运行脚本时遇到的问题示例: ./myscript -u tmp/users/regions 将路径(tmp/users/regions)作为sed模式是一种困惑。 希望我足够清楚。 等待您的帮助:) 谢谢我想你可以试着在一些东西上运行这个脚本 echo a | sed "$pattern

我正在编写一个bash脚本,它应该会接收许多参数。这些论点可以很简单,比如:

Myscript [-r] [-l|-u] <dir/file names...>
更清楚地说,下面是一个我在尝试这样运行脚本时遇到的问题示例:

./myscript -u tmp/users/regions
将路径(
tmp/users/regions
)作为sed模式是一种困惑。 希望我足够清楚。 等待您的帮助:)
谢谢

我想你可以试着在一些东西上运行这个脚本

echo a | sed "$pattern" >/dev/null 2>/dev/null
然后检查
$?

if [ $? != 0 ]; then # means sed failed
#...
但sed可能会认为这也是它的论点

顺便说一句,使用
getopt
处理参数将使事情变得更简单

我认为你设计参数格式的方式不好。也许你认为以不同的形式进行辩论可以使你的程序看起来充满活力和令人敬畏。但现在你正在试图解决一个与你严肃的生意无关的问题,浪费你自己和我们的时间。那不好。最好把事情说得愚蠢而清楚

在您的例子中,也许您可以添加另一个参数来显示它是一个sed表达式

YourScript -e <sed expr> <others>
YourScript-e
这样,两周后你就会知道你做了什么

if [ $? != 0 ]; then # means sed failed
#...
YourScript -e <sed expr> <others>