#linux #bash #cygwin #csh #tcsh
#linux #bash #cygwin #csh #tcsh
Вопрос:
Это очень просто. Я пытаюсь установить свою переменную во втором скрипте. Я пробовал несколько способов, но не работает. Отсюда и весь закомментированный раздел. Первый скрипт, который вы запускаете IE:unit3.2a.sh 3 5 это вернет 8. Второй скрипт должен прочитать результат как 8. Я использую cygwin.
unit3.2a.sh «‘
#!/bin/csh
set a = 0
set b = 0
set c = 0
@ a = $1
@ b = $2
@ c = $a $b
echo $c
»’
unit3.sh «‘
#!/bin/csh
a=$(~./unit3.2a.sh)
#below is all that don't work!
#instructors: a =~./unit3.2a.sh 2 200
#./unit3.2a.sh "2" "200"
#~./unit3.2a.sh 2 200
#=$(./unit3.2a.sh 2 200)
#=$(./unit3.2a.sh) (2 200)
#$(./unit3.2a.sh 2 200)
#$(/home/Admin/unit3.2a.sh)
#$(/home/Admin/unit3.2a.sh 2 200)
#added echo $a to see if I wasnt seeing anything the echo text works fine but a variable does not read?
#set a='./unit3.2a.sh 2 200'
##set a=$(cat ./unit3.2a.sh 2 200)
#$ ./unit3.sh
#cat: 2: No such file or directory
#cat: 200: No such file or directory
#set a=$(~./unit3.2a.sh 2 200)
#a=$(~./unit3.2a.sh 2 200)
echo $a
echo "The result is: $a"
echo "Storing the results.............."
echo "Storing the result: $a" >> unit3.txt
echo "The script is over"
»’
Комментарии:
1. Я не совсем понимаю ваш вариант использования здесь, но знаете ли вы о
csh
setenv
vsset
и их различиях?setenv
это какexport
в других оболочках. Это делает переменные видимыми для дочерних процессов родительскогоcsh
. Удачи.
Ответ №1:
пожалуйста, обратите внимание, что:
~./unit3.2a.sh
ссылается на конкретное местоположение файла, в то время как ./unit3.2a.sh
ссылается на файл в текущем каталоге
форма $( command )
зависит от bash, не работает в C-shell, см.
https://www.grymoire.com/Unix/Csh.html#uh-21
#!/bin/csh
set a = `./unit3.2a.sh 2 2`
echo $a
echo "The result is: $a"
echo "Storing the results.............."
echo "Storing the result: $a" >> unit3.txt
echo "The script is over"
это приводит:
$ ./unit3.sh
4
The result is: 4
Storing the results..............
The script is over
Комментарии:
1. Спасибо за статью, я разбираюсь в python, java и c. Но Linux выбивает мой двухкомпонентный пакет. Это просто достаточно отличается от командной строки, как будто я знаю французский, поэтому я понимаю много испанского, когда читаю, но не слышу подсказки. 🙂 Спасибо.