我试图使用echo将变量写入.sh脚本,例如echo "$dir" >test.sh
,但它只是将$dir
的值复制为文本...而是,我想要每次运行脚本时都会看到$dir
的当前值。
实施例
dir=~\first\
cat test.sh
输出ls -l ~\first\
dir=~\second\
cat test.sh
输出ls -l ~\second\
我该怎么做?
答案 0 :(得分:1)
将$dir
转义为\$dir
或'$dir'
会写出变量名称而不是其值。如果您希望脚本打印$dir
的值,那么您可以写出整个echo
命令。
echo 'echo "$dir"' > test.sh
答案 1 :(得分:0)
然后你的脚本应该包含这样的内容:
ls -l "$1" | ...
然后你可以在执行脚本时传入目录:
./script path/to/whatever
答案 2 :(得分:0)
要评估cmd,您可以使用$()。
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
答案 3 :(得分:0)
凝视我的水晶球(也就是猜测你真正想要的东西)....
如果当前shell中有dir=foo
,并且您想要调用脚本以便列出foo
的内容,那么您需要做的就是将dir
放在环境中。也就是说,尝试下列之一:
dir=baz ./test.sh # script runs with dir == baz
export dir
dir=foo
./test.sh # script runs with dir == foo
dir=bar
./test.sh # script runs with dir == bar