Bash 将简单字符串与shell连接出错?

Bash 将简单字符串与shell连接出错?,bash,shell,grep,ls,Bash,Shell,Grep,Ls,我试图连接字符串,然后执行生成的字符串,但它不能正常工作,下面是代码: #!/bin/bash c="ls -alis" c="$c | grep me" echo $c $c 它打印ls-alis | grep me,但不打印包含字符串“me”的任何文件,它会给我以下错误: ls: |: No such file or directory ls: grep: No such file or directory ls: u1920477: No such

我试图连接字符串,然后执行生成的字符串,但它不能正常工作,下面是代码:

    #!/bin/bash
    c="ls -alis"
    c="$c | grep me"
    echo $c
    $c
它打印
ls-alis | grep me
,但不打印包含字符串“me”的任何文件,它会给我以下错误:

ls: |: No such file or directory
ls: grep: No such file or directory
ls: u1920477: No such file or directory

但是,如果我直接向终端键入
ls-alis | grep me
,它会显示它应该显示的文件。为什么会发生这种情况?

我想您应该在这里执行
评估$c
。但是我建议您避免用这样的字符串生成命令——如果您能找到更好的方法,它可能更容易理解,也更安全。

我想您应该在这里执行
eval$c
。但是我建议您避免用这样的字符串生成命令——如果您能找到更好的方法,它可能更容易理解,也更安全。

我想您应该在这里执行
eval$c
。但是我建议您避免用这样的字符串生成命令——如果您能找到更好的方法,它可能更容易理解,也更安全。

我想您应该在这里执行
eval$c
。但我建议您避免用这样的字符串生成命令——如果您能找到更好的方法,它可能更容易理解,也更安全;shell函数保存代码

c () {
    ls -alis | grep me
}

字符串保存数据;shell函数保存代码

c () {
    ls -alis | grep me
}

字符串保存数据;shell函数保存代码

c () {
    ls -alis | grep me
}

字符串保存数据;shell函数保存代码

c () {
    ls -alis | grep me
}

同样,您需要
$()
来执行该命令。所以我猜你是在寻找
c=$($c|grep“me”)
。你是对的,成功了!但是,如果我尝试用
sort-k1
而不是grep来完成它,它不会。我需要做哪些不同的操作?例如,您需要
$()
来执行该命令。所以我猜你是在寻找
c=$($c|grep“me”)
。你是对的,成功了!但是,如果我尝试用
sort-k1
而不是grep来完成它,它不会。我需要做哪些不同的操作?例如,您需要
$()
来执行该命令。所以我猜你是在寻找
c=$($c|grep“me”)
。你是对的,成功了!但是,如果我尝试用
sort-k1
而不是grep来完成它,它不会。我需要做哪些不同的操作?例如,您需要
$()
来执行该命令。所以我猜你是在寻找
c=$($c|grep“me”)
。你是对的,成功了!但是,如果我尝试用
sort-k1
而不是grep来完成它,它不会。我需要做什么不同的事情?