Linux 如何在shell脚本中从命令行参数中检索值

Linux 如何在shell脚本中从命令行参数中检索值,linux,shell,unix,command-line-arguments,Linux,Shell,Unix,Command Line Arguments,我用shell脚本编写了两条语句,如下所示:- str=$'cd /home \n mkdir $1' echo "$str" 当我执行上述脚本文件时,它会显示以下输出:- [root]# ./ScriptCheck.sh pravin cd /home mkdir $1 输出应在哪里:-> cd /home mkdir pravin 变量不能用单引号(“)展开为字符串。尝试使用双引号(“)代替 有关详细信息,请参阅。变量不会使用单引号(”)展开为字符串。请尝试使用双引号(“)代替 有关详

我用shell脚本编写了两条语句,如下所示:-

str=$'cd /home \n mkdir $1'
echo "$str"
当我执行上述脚本文件时,它会显示以下输出:-

[root]# ./ScriptCheck.sh pravin
cd /home
mkdir $1
输出应在哪里:->

cd /home
mkdir pravin

变量不能用单引号(
)展开为字符串。尝试使用双引号(
)代替


有关详细信息,请参阅。

变量不会使用单引号(
)展开为字符串。请尝试使用双引号(
)代替

有关详细信息,请参阅。

尝试更改:

str=$'cd /home ; mkdir $1'
echo "$str"
尝试更改:

str=$'cd /home ; mkdir $1'
echo "$str"

请注意,使用双引号时,
\n
将被视为两个文字字符,而不是新行。将
-e
添加到对
echo
的调用中,将导致
echo
再次将该对解释为换行符。请注意,使用双引号时,
\n
将被视为两个文字字符,而不是新行。将
-e
添加到对
echo
的调用中,将导致
echo
再次将对解释为换行符。单引号不提供shell变量的输出。要获得确切的变量,您可能需要将其括在双引号内。单引号不提供shell变量的输出。为了得到准确的变量,您可能需要将其括在双引号内。