腳本1如下
#!/bin/csh
echo $*
$*
然後我在命令列上運行以下命令:
>script1 setenv VAR "/user/path" \; ls
它給出的輸出為:
setenv VAR /user/path ; ls
setenv: Too many arguments.
有什麼想法可以修復它嗎?
答案1
我真的不明白為什麼你會想要這個,但你的問題是你試圖運行一個變數而不是評估它。試試這個:
#!/bin/csh
echo "$*"
eval "$*"
然後
script1 setenv VAR "/user/path" \; ls
我不知道,csh
但問題似乎與將兩個命令作為變數有關。這按預期工作:
setenv aa "ls"
"$aa"
但這失敗了,需要eval
:
setenv aa "ls; echo foo"
"$aa"