我的问题在于我对 shell变量的困惑。
根据我的理解,变量允许我存储一个值(本例中为String)并稍后在我的代码中调用它。因此,如果我想要一个变量来保存路径到某些脚本集,我理想情况下可以像这样存储它:
SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler'
//Later on in the script//
cd $SPTH
./script1
我尝试做的事情(可能是错误的语法)是将路径设置为变量SPTH
。
然后我将cd
与参数$SPTH
一起使用。
理想情况下,这样我就可以在不输入路径的情况下运行文件。然而,它不起作用。 $SPTH
会被忽略,结果就好像单独使用 cd
一样。
那么我做错了什么?那会是什么方法呢?
答案 0 :(得分:77)
不要使用空格......
(错误)
SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler'
(正确)
SPTH='/home/Foo/Documents/Programs/ShellScripts/Butler'
答案 1 :(得分:3)
要添加到上述正确答案中:-
就我在shell中的情况而言,此代码有效(适用于sqoop
)
ROOT_PATH="path/to/the/folder"
--options-file $ROOT_PATH/query.txt