linux脚本中"${@-'-i'}" 是一个什么写法,见下面!求解释

#!/bin/ksh
export TEREDO_WORMS=ukelele
exec $SHELL "${@-'-i'}"

The "${@-'-i'}" bit means 'if the argument list contains at least one argument, use the original argument list; otherwise, substitute -i for the non-existent arguments'.

$@ 或者 ${@} 会被替换成脚本的输入参数,比如 a.sh 如下内容

#!/bin/ksh

echo "$@"

则执行 a.sh 1 2 3 4 ,你会得到
1 2 3 4 的打印。

${paramter-word} 会被替换成变量 parameter 的值,如果 parameter 不存在,则被替换成 word。所以
${@-'-i'} 就会被替换成脚本的输入参数 ,但是如果脚本没有输入参数,则替换成 -i
温馨提示:内容为网友见解,仅供参考
无其他回答

linux脚本中"${@-'-i'}" 是一个什么写法,见下面!求解释
{@-'-i'} 就会被替换成脚本的输入参数 ,但是如果脚本没有输入参数,则替换成 -i

linux的$符号是什么意思?
我们先准备一个简单的脚本1.sh, 里面内容很简单,就是睡眠100秒:下面我们在后台运行这个脚本,看一下$!的输出结果:从上图可以看出, 脚本运行后,系统分配给它的进程id是54821, 后面我们连续输出三次$!,得到的结果是一样的,都是54821. 因为1.sh这个脚本就是我们最近一次后台运行的脚本,所以此时无论...

Linux 中 $符号是什么意思,代表什么含义
1是传递给shell脚本的第一个参数 2是传递给shell脚本的第二个参数 表示所有参数,并且所有参数都是独立的 是正在运行的脚本的当前进程ID号 那$是显示最终命令的退出状态,0表示没有错误,其他表示有错误。1、Linux由众多微内核组成,其源代码完全开源;2、Linux继承了Unix的特性,具有非常强大的网络功能...

Linux 中 $符号是什么意思,代表什么含义
1 是传递给该shell脚本的第一个参数 2 是传递给该shell脚本的第二个参数 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个 是脚本运行的当前进程ID号 ? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 免费提供最新Linux技术教程...

Linux shell 脚本中, $@ 和$# 分别是什么意思?
直接看示例:[root@localhost xly]# cat t.sh !\/bin\/bash echo echo [root@localhost xly]# sh t.sh 0 [root@localhost xly]# sh t.sh a b c 3 a b c 说明:表示所有参数 表示所有参数的个数

Linux 中 $符号是什么意思,代表什么含义
是 变量符,在Linux系统里面表示获取一个变量的值。比如 a=finmnk 使用 $a 就表示变量a,其值为 finmnk%。再举例如:!\/bin\/bash ---指定编译shell环境为bash STR="Hello World!"---设置STR的变量值为Hello World!echo $STR --- 用echo命令读取STR变量的数值。这里如果不加$, 输出结果是S...

linux中的$是什么意思?
除了上述用法外,$ 在 Linux 中还可以用来引用和替换变量。在 Shell 脚本中,我们可以定义变量并用 $ 来引用它们。例如,我们可以通过定义变量 name="Tom",然后使用 echo 命令输出它的值,即 echo $name。此外,还可以通过 $ 来替换变量,例如将文件名后缀从 .txt 更改为 .md,即使用...

Linux中$的用法linux中$的用法
\/tmp就是放临时文件的地方.每次关机会清楚其中的内容.也可以把自己些的脚本或程序中产生的临时文件放在这里,就不用自己手动清除了.linux位置变量用法?Linux位置变量用法,$1代表第一个参数,$2代表第二个参数,$3代表第三个参数,以此类推,$*代表参数的个数。

linux中$?,$#等代表什么
在Linux中,一些特殊的变量符号用于获取和表示与当前执行环境相关的有用信息。让我们详细了解这些符号的作用:0代表当前执行程序的名称。如果你在命令行中看到$1, $2, ...直到$9,它们分别代表传递给该程序的第1个到第9个参数值。当参数数量超过9个时,可以使用$*,它会收集所有参数,形成一个整体。

Linux中的$?与 $@,各表示什么意思啊?
? : 上一个命令执行后的返回值 : 命令的参数数组

相似回答