相关疑难解决方法(0)

我似乎无法在"-c"选项字符串后面使用带有参数的Bash"-c"选项

关于-c选项,Bash的手册页说:

-c string 如果-c存在该选项,则从中读取命令 string.如果字符串后面有参数,则将它们分配给位置参数,从 $0.

所以鉴于这个描述,我认为这样的事情应该有效:

bash -c "echo arg 0: $0, arg 1: $1" arg1
Run Code Online (Sandbox Code Playgroud)

但输出只显示以下内容,因此看起来-c字符串后的参数没有分配给位置参数.

arg 0: -bash, arg 1:
Run Code Online (Sandbox Code Playgroud)

我正在运行一个相当古老的Bash(在Fedora 4上):

[root @dd42 trunk] #bash --version GNU bash,version 3.00.16(1)-release(i386-redhat-linux-gnu)Copyright(C)2004 Free Software Foundation,Inc.

我真的想用参数执行一些shell脚本.我认为-c看起来非常有希望,因此上面的问题.我想知道使用eval,但我认为我不能将参数传递给eval之后的东西.我也对其他建议持开放态度.

bash eval

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

/ bin/bash -c与直接执行命令有什么不同?

我很好奇为什么这个命令:

for f in `/bin/ls /mydir | sort | tail -n 10`; do echo $f; done;
Run Code Online (Sandbox Code Playgroud)

输出/ mydir中的最后十个文件,但是

/bin/bash -c "for f in `/bin/ls /mydir | sort | tail -n 10`; do echo $f; done;"
Run Code Online (Sandbox Code Playgroud)

输出"意外令牌附近的语法错误"[文件在/ mydir]'"

bash

5
推荐指数
1
解决办法
7096
查看次数

标签 统计

bash ×2

eval ×1