在 c shell 中找不到命令错误
Command not found error in c shell
我有以下脚本:
set blah1 = 12743
set sid1 = `"ps -p $blah1 -o sid"`
echo "$sid1"
我预计会发生的是 $blah1 将被替换为它的值,然后命令将被执行,它的值被放置在 sid1 中。相反,我收到一个错误:
ps -p 12743 -o sid: command not found.
我的错误是什么?
谢谢。
您使用引号:
a b c d e
...表示:运行名为a
的程序;参数是 b
、c
、d
和 e
。
"a b c d e"
... 表示:运行名为a b c d e
的程序(文件名中有space个字符);没有参数。
错误消息表明 shell 正在搜索名为 ps -p 12743 -o sid
.
的可执行文件
你的错误是双引号。
ps
命令接受一组参数。这些参数在反引号内的字符串中以空格分隔。通过使用双引号,您消除了空格分隔,并要求 shell 启动一个看起来像整个引号字符串的命令。
尝试:
set sid1 = `ps -p "$blah1" -o sid`
看看你的表现是否更好。
例如,尝试比较 shell 提示符下 ls -a
的输出与 "ls -a"
.
的输出
1% ls -a
. ..
2% "ls -a"
ls -a: Command not found.
N.B。除了 csh(即 POSIX、Bash 等),其他 shell 也会发生同样的事情。
我有以下脚本:
set blah1 = 12743
set sid1 = `"ps -p $blah1 -o sid"`
echo "$sid1"
我预计会发生的是 $blah1 将被替换为它的值,然后命令将被执行,它的值被放置在 sid1 中。相反,我收到一个错误:
ps -p 12743 -o sid: command not found.
我的错误是什么?
谢谢。
您使用引号:
a b c d e
...表示:运行名为a
的程序;参数是 b
、c
、d
和 e
。
"a b c d e"
... 表示:运行名为a b c d e
的程序(文件名中有space个字符);没有参数。
错误消息表明 shell 正在搜索名为 ps -p 12743 -o sid
.
你的错误是双引号。
ps
命令接受一组参数。这些参数在反引号内的字符串中以空格分隔。通过使用双引号,您消除了空格分隔,并要求 shell 启动一个看起来像整个引号字符串的命令。
尝试:
set sid1 = `ps -p "$blah1" -o sid`
看看你的表现是否更好。
例如,尝试比较 shell 提示符下 ls -a
的输出与 "ls -a"
.
1% ls -a
. ..
2% "ls -a"
ls -a: Command not found.
N.B。除了 csh(即 POSIX、Bash 等),其他 shell 也会发生同样的事情。