我想以myscript这种方式调用文件:
$ ./myscript -s 45 -p any_string
Run Code Online (Sandbox Code Playgroud)
要么
$ ./myscript -h #should display help
$ ./myscript #should display help
Run Code Online (Sandbox Code Playgroud)
我的要求是:
getopt 这里得到输入参数-s存在,如果没有返回错误-s是45还是90-p存在并且之后有输入字符串./myscript -h或只是./myscript显示帮助我到目前为止尝试了这段代码:
#!/bin/bash
while getopts "h:s:" arg; do
case $arg in
h)
echo "usage"
;;
s)
strength=$OPTARG
echo $strength
;;
esac
done
Run Code Online (Sandbox Code Playgroud)
但是使用该代码我会收到错误.怎么用Bash和getopt?
我试图用命令获取目录中所有python和html文件的列表find Documents -name "*.{py,html}".
然后是手册页:
模式('{}')中的大括号不被认为是特殊的(即,find.-name'foo {1,2}'匹配名为foo {1,2}的文件,而不是文件foo1和foo2.
由于这是管道链的一部分,我希望能够在运行时指定它匹配的扩展名(没有硬编码).如果找不到它,perl单行(或类似)就可以了.
编辑:我最终提出的答案包括各种各样的废话,并且有点长,所以我发布它作为我试图划伤的原始痒的答案.如果你有更好的解决方案,请随意破解.
我想要一个命令(或者可能是cp的一个选项),如果它不存在,则创建目标目录.
例:
cp -? file /path/to/copy/file/to/is/very/deep/there
Run Code Online (Sandbox Code Playgroud) 我知道如何在Bash脚本中编写多行命令,但是如何在多行命令中为每一行添加注释?
CommandName InputFiles \ # This is the comment for the 1st line
--option1 arg1 \ # This is the comment for the 2nd line
--option2 arg2 # This is the comment for the 3nd line
Run Code Online (Sandbox Code Playgroud)
但不幸的是,继续角色之后的评论\将打破命令.
我正在尝试编写一个用于测试的bash脚本,它接受一个参数并通过curl将其发送到网站.我需要对值进行url编码,以确保正确处理特殊字符.做这个的最好方式是什么?
这是我到目前为止的基本脚本:
#!/bin/bash
host=${1:?'bad host'}
value=$2
shift
shift
curl -v -d "param=${value}" http://${host}/somepath $@
Run Code Online (Sandbox Code Playgroud) 我有一个shell脚本,可以在Windows/Cygwin,Mac和Linux上使用.每个版本需要稍微不同的变量.
shell/bash脚本如何检测它是在Cygwin,Mac或Linux上运行?
我有一个文本文件,其中有一个特定的行
sometext sometext sometext TEXT_TO_BE_REPLACED sometext sometext sometext
Run Code Online (Sandbox Code Playgroud)
我需要替换上面的整行
This line is removed by the admin.
Run Code Online (Sandbox Code Playgroud)
搜索关键字是 TEXT_TO_BE_REPLACED
我需要为此编写一个shell脚本.我怎样才能实现这个目的sed?
如何创建一个链接xxx到/home/jake/doc/test/2000/something/?
假设它xxx是在/home/jake你当前所在的位置创建的/home/jake.当你这样做cd xxx,你直接去/home/jake/doc/test/2000/something/.
我想代表这样的多个条件:
if [ ( $g -eq 1 -a "$c" = "123" ) -o ( $g -eq 2 -a "$c" = "456" ) ]
then
echo abc;
else
echo efg;
fi
Run Code Online (Sandbox Code Playgroud)
但是当我执行脚本时,它会显示出来
syntax error at line 15: `[' unexpected,
Run Code Online (Sandbox Code Playgroud)
第15行显示是否....
这种情况怎么了?我猜这有点不对劲().