Shell 脚本:使用变量定义路径

Posted

技术标签:

【中文标题】Shell 脚本:使用变量定义路径【英文标题】:Shell Scripting: Using a variable to define a path 【发布时间】:2012-02-15 13:35:52 【问题描述】:

我的问题在于我对 shell 变量的混淆。

据我了解,变量允许我存储一个值(在本例中为字符串)并稍后在我的代码中调用它。因此,如果我想要一个变量来保存某些脚本集的路径,理想情况下我可以像这样存储它:

SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler'

//Later on in the script//
cd $SPTH
./script1

我正在尝试使用可能错误的语法将路径设置为变量SPTH

然后我使用 cd 和参数 $SPTH

理想情况下,这将允许我在那里运行文件而无需输入路径。但是它不起作用。 $SPTH 被忽略,结果就像单独使用了 cd

那我做错了什么?有什么方法可以做到这一点?

【问题讨论】:

如果我没记错的话,你不要在“=”周围使用空格。 【参考方案1】:

不要使用空格...

(不正确)

SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler'

(正确)

SPTH='/home/Foo/Documents/Programs/ShellScripts/Butler'

【讨论】:

非常感谢!现在就像一个魅力,我必须记住这一点。 路径中有空格怎么办 @Eatdoku 在你的脚本中使用SPTH 并且它的值有一个空格,然后用双引号将变量括起来。例如。 cd "$SPTH" 不需要CD就可以运行吗?我在想command $SPTH,但这似乎有点冒险。也许我需要改变路径,但硬编码脚本名称? command $SPTH/somescript.sh ?【参考方案2】:

要添加到上述正确答案:- 对于我在 shell 中的情况,此代码有效(在 sqoop 上工作)

ROOT_PATH="path/to/the/folder"
--options-file  $ROOT_PATH/query.txt

【讨论】:

以上是关于Shell 脚本:使用变量定义路径的主要内容,如果未能解决你的问题,请参考以下文章

shell编程—变量

如何在shell脚本中使用变量

shell脚本基础----变量

Shell ❀ 基础变量类别与引用

Shell ❀ 基础变量类别与引用

Shell ❀ 基础变量类别与引用