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 脚本:使用变量定义路径的主要内容,如果未能解决你的问题,请参考以下文章