测试脚本:
#!/bin/bash
var=$1
function test {
echo "dollar1 $1"
echo "var $var"
}
test
exit
Run Code Online (Sandbox Code Playgroud)
产量
./test.sh d
dollar1
var d
Run Code Online (Sandbox Code Playgroud)
为什么没有$1在函数内部填充,有没有办法将$1... 传递$n给所有函数而不将它们分别定义为变量?
我正在尝试按多个值进行过滤,但是似乎无法使and子句起作用(例如filter1和filter 2 ...等):
向我显示数据库名称正在“测试”的快照
aws rds describe-db-snapshots --include-shared --query 'DBSnapshots[?DBInstanceIdentifier==`testing`].{DBNAME:DBInstanceIdentifier,SNAPSHOT:DBSnapshotIdentifier}'
[
{
"SNAPSHOT": "test1",
"DBNAME": "testing"
},
{
"SNAPSHOT": "test2",
"DBNAME": "testing"
},
{
"SNAPSHOT": "test3",
"DBNAME": "testing"
},
{
"SNAPSHOT": "test4",
"DBNAME": "testing"
}
]
Run Code Online (Sandbox Code Playgroud)
向我显示名为“ test1”的快照
$ aws rds describe-db-snapshots --include-shared --query 'DBSnapshots[?DBSnapshotIdentifier==`test1`].{DBNAME:DBInstanceIdentifier,SNAPSHOT:DBSnapshotIdentifier}'
[
{
"SNAPSHOT": "test1",
"DBNAME": "testing"
},
{
"SNAPSHOT": "test1",
"DBNAME": "testing2"
}
]
Run Code Online (Sandbox Code Playgroud)
向我显示名为test1的数据库测试快照
aws rds describe-db-snapshots --include-shared --query 'DBSnapshots[?DBInstanceIdentifier==`testing`][?DBSnapshotIdentifier==`test1`].{DBNAME:DBInstanceIdentifier,SNAPSHOT:DBSnapshotIdentifier}'
[]
Run Code Online (Sandbox Code Playgroud)
如何做到这一点?
有人可以向我解释当查询1返回查询2中使用的替换值时,为什么查询4的输出与其他输出不同,这应该等同于运行与查询4相同的操作?
我怀疑它与nls_date_format有关,但我不确定.
查询1
SELECT TO_DATE(SYSDATE, 'DD/MON/YYYY')FROM DUAL;
TO_DATE(SYSDATE,'DD/MON/YYYY')
------------------------------
02-SEP-15
Run Code Online (Sandbox Code Playgroud)
查询2
SELECT TO_DATE('02-SEP-15') - TO_DATE('01/JAN/07') FROM DUAL;
TO_DATE('02-SEP-15')-TO_DATE('01/JAN/07')
-----------------------------------------
3166
SELECT TO_DATE(SYSDATE, 'DD/MON/YY') - TO_DATE('01/JAN/2007') FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
查询3
TO_DATE(SYSDATE,'DD/MON/YY')-TO_DATE('01/JAN/2007')
---------------------------------------------------
3166
Run Code Online (Sandbox Code Playgroud)
查询4
SELECT TO_DATE(SYSDATE, 'DD/MON/YYYY') - TO_DATE('01/JAN/2007') FROM DUAL;
TO_DATE(SYSDATE,'DD/MON/YYYY')-TO_DATE('01/JAN/2007')
-----------------------------------------------------
-72732
Run Code Online (Sandbox Code Playgroud)